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

Re: [PATCH] t7450: make test "set -e" clean

From
Eric Sunshine <sunshine@sunshineco.com>
Date
Mar 24, 2026, 18:38 UTC
Message-ID
<CAPig+cQPD3vAxbRAJsqyd5=x2xCkTHj0Z6Gt2t+GiGjXDYei0Q@mail.gmail.com>
In-Reply-To
<xmqqbjgdyt6l.fsf_-_@gitster.g>
On Tue, Mar 24, 2026 at 2:32 PM Junio C Hamano <gitster@pobox.com> wrote:
Show 28 quoted lines
> In order to catch mistakes like misspelling "test_expect_success",
> we would like to eventually be able to run our test suite with the
> "-e" option on.
>
> Often we write "A && test_expect_success ..." and want it to mean
> "If and only if A holds true, this needs to be tested", but under
> "set -e", this will cause failure when A does not hold true.  We
> need to write "!A || test_expect_success ..." if we want to run the
> test conditionally.
>
> Or write it properly with if/then/fi, perhaps like:
>
>         if ! A
>         then
>                 test_expect_success ...
>         fi
>
> Make sure we do not fail unnecessarily under "set -e".
>
> Signed-off-by: Junio C Hamano <gitster@pobox.com>
> ---
> diff --git i/t/t7450-bad-git-dotfiles.sh w/t/t7450-bad-git-dotfiles.sh
> @@ -220,7 +220,7 @@ check_dotx_symlink () {
> -       test -n "$refuse_index" &&
> +       test -z "$refuse_index" ||
>         test_expect_success "refuse to load symlinked $name into index ($type)" '
>                 test_must_fail \
>                         git -C $dir \

I suppose this is the absolute minimum change to make this work, but typically we would handle this sort of case by defining a PREREQ, wouldn't we? Using a PREREQ would also set a better example for those new to the codebase.

Previous: Junio C HamanoNext: Junio C Hamano
Message 11 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. t0008: make test "set -e" cleanJunio C Hamano, Mar 24, 2026
  10. t7450: make test "set -e" cleanJunio C Hamano, Mar 24, 2026
  11. Eric SunshineMar 24, 2026
  12. Junio C HamanoMar 24, 2026
  13. Jeff KingMar 24, 2026
  14. Junio C HamanoMar 24, 2026
  15. Jeff KingMar 25, 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.