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

Re: [PATCH] t4014: fix call to `test_expect_success ()`

From
Junio C Hamano <gitster@pobox.com>
Date
Mar 24, 2026, 16:39 UTC
Message-ID
<xmqqo6kd18sr.fsf@gitster.g>
In-Reply-To
<acKx6yBi-BWUVJcv@exploit>
Mirko Faina <mroik@delayed.space> writes:
Show 6 quoted lines
> On Tue, Mar 24, 2026 at 08:38:49AM -0700, Junio C Hamano wrote:
>> Could either of you remind us why "make test" did not catch this?
>
> My bad. At the time when I ran it I simply saw no failing tests and
> assumed everything worked fine. Next time I'll check that the actual
> name of the test is present in the output.
No, I wasn't complaining a human tester not running tests.

I was wondering if we can make the test framework better so that a misspelt test_expect_success would cause a louder failure than what we have now, which is something like:

	...
        ok 5 - check hash-object
        t0002-gitfile.sh: line 46: test_expect_successo: command not found
        expecting success of 0002.6 'check update-index':
                test_path_is_missing "$REAL/index" &&
                rm -f "$REAL/objects/$(objpath $SHA)" &&
                git update-index --add bar &&
                test_path_is_file "$REAL/index" &&
                test_path_is_file "$REAL/objects/$(objpath $SHA)"
        ok 6 - check update-index
        ...
        expecting success of 0002.13 'enter_repo strict mode':
                head=$(git -C enter_repo rev-parse HEAD) &&
                ...
                test_cmp expected actual
        ok 13 - enter_repo strict mode
        # passed all 13 test(s)
        1..13
when I corrupt the 6th test of a random script.
        diff --git i/t/t0002-gitfile.sh w/t/t0002-gitfile.sh
        index dfbcdddbcc..d65f664914 100755
        --- i/t/t0002-gitfile.sh
        +++ w/t/t0002-gitfile.sh
        @@ -43,7 +43,7 @@ test_expect_success 'check hash-object' '
                test_path_is_file "$REAL/objects/$(objpath $SHA)"
         '
        -test_expect_success 'check cat-file' '
        +test_expect_successo 'check cat-file' '
                git cat-file blob $SHA >actual &&
                test_cmp bar actual
         '

There is no indication of something bad happened, other than "command not found" and 13 tests passed instead of 14 the script has, which nobody knows.

So, no, it hardly is your fault.
I wonder if the test framework is safe to run with "set -e".
Previous: Mirko FainaNext: Junio C Hamano
Message 5 of 16 in “t4014: fix call to `test_expect_success ()`”
  1. t4014: fix call to `test_expect_success ()`Patrick Steinhardt, Mar 24, 2026
  2. Mirko FainaMar 24, 2026
  3. Junio C HamanoMar 24, 2026
  4. Mirko FainaMar 24, 2026
  5. Junio C HamanoMar 24, 2026
  6. Re* [PATCH] t4014: fix call to `test_expect_success ()`Junio C Hamano, Mar 24, 2026
  7. t6002: make test "set -e" cleanJunio C Hamano, Mar 24, 2026
  8. test-lib: catch misspelt 'test_expect_successo'Junio C Hamano, Mar 24, 2026
  9. Jeff KingMar 24, 2026
  10. Junio C HamanoMar 24, 2026
  11. Jeff KingMar 25, 2026
  12. t0008: make test "set -e" cleanJunio C Hamano, Mar 24, 2026
  13. t7450: make test "set -e" cleanJunio C Hamano, Mar 24, 2026
  14. Eric SunshineMar 24, 2026
  15. Junio C HamanoMar 24, 2026
  16. Patrick SteinhardtMar 25, 2026

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.