git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2 1/1] maintenance: fix SEGFAULT when no repository

From
Junio C Hamano <gitster@pobox.com>
Date
Dec 8, 2020, 22:17 UTC
Message-ID
<xmqqh7ow54eb.fsf@gitster.c.googlers.com>
In-Reply-To
<xmqqsg8g559i.fsf@gitster.c.googlers.com>
Junio C Hamano <gitster@pobox.com> writes:
Show 11 quoted lines
> Josh Steadmon <steadmon@google.com> writes:
>
>> Caught a typo here, sending this as a squash patch since it's already in
>> next:
>
> The breakage and the fix looks obvious to me, but...
>
> How did CI allow 'next' to pass with such a typo, I wonder?
> Moreover, my pre-push tests of all the integration branches
> I didn't notice this to fail, but I cannot see how it could
> have been succeeded.  Puzzled...
That is because of this:
    $ (sh t7900-maintenance.sh 2>&1; echo $?) | tail -5
    ok 25 - register preserves existing strategy
    t7900-maintenance.sh: line 444: test_execpt_success: command not found
    # passed all 25 test(s)
    1..25
    0
The story is the same with prove.
    $ prove t7900-maintenance-sh
    t7900-maintenance.sh .. 24/? t7900-maintenance.sh: line 444: test_execpt_success: command not found
    t7900-maintenance.sh .. ok
    All tests successful.
    Files=1, Tests=25,  2 wallclock secs ( 0.02 usr  0.01 sys +  0.97 cusr  0.97 csys =  1.97 CPU)
    Result: PASS

Since this typo appeared immediately before test_done, we _could_ improve test_done to pay attention to $? when it starts (and in a similar fashion, we _could_ also check $? at the beginning of the test_expect_* for the previous step), but I do not think that is a good approach that would scale well. There are legitimate reasons we have to write things other than test_expect_* at the top level of the script (e.g. test helper function may have to be defined to be shared amongst the test pieces in the same script).

I wonder if it is a good direction to go to run the tests with the "set -e" option on, and accept its peculiarities.

Previous: Junio C HamanoNext: Christian Couder
Message 19 of 22 in “maintenance: Fix a SEGFAULT when no repository when running git maintenance run/start”
  1. 0/1 maintenance: Fix a SEGFAULT when no repository when running git maintenance run/startRafael Silva, Nov 24, 2020
  2. 1/1 maintenance: fix a SEGFAULT when no repositoryRafael Silva, Nov 24, 2020
  3. Derrick StoleeNov 24, 2020
  4. Junio C HamanoNov 24, 2020
  5. Derrick StoleeNov 24, 2020
  6. Rafael SilvaNov 26, 2020
  7. Derrick StoleeNov 26, 2020
  8. Eric SunshineNov 24, 2020
  9. SZEDER GáborNov 24, 2020
  10. Eric SunshineNov 24, 2020
  11. Rafael SilvaNov 26, 2020
  12. Martin ÅgrenNov 24, 2020
  13. Rafael SilvaNov 26, 2020
  14. 0/1 maintenance: Fix SEGFAULT when running outside of a repositoryRafael Silva, Nov 26, 2020
  15. 1/1 maintenance: fix SEGFAULT when no repositoryRafael Silva, Nov 26, 2020
  16. Derrick StoleeNov 27, 2020
  17. Josh SteadmonDec 8, 2020
  18. Junio C HamanoDec 8, 2020
  19. Junio C HamanoDec 8, 2020
  20. Christian CouderDec 24, 2020
  21. Junio C HamanoDec 24, 2020
  22. Rafael SilvaDec 9, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.