Subject: [PATCH 00/11] detect misspelt test_expect_success and friends

From: Junio C Hamano <[email-masked]>
Date: Tue, 24 Mar 2026 23:21:03 -0700

Recently we saw an unusual typo in a test that misspelt
"test_expect_success", but this was not noticed for a while
primarily because the test script itself did not fail due to this
typo.  The shell and the test framework did say

    tXXXX-xxx.sh: line 22: test_expect_successo: command not found

but otherwise kept going.

One way to help us detect such an error is to run our test under
"set -e", which will abort execution after any command exits with
non-zero status.

However, there are a handful of places in our existing tests and the
test framework itself that depends on the current behaviour of
silently ignoring a failing command.  Here is an attempt to fix them.

The first step turns "set -e" on very early in the test framework,
and fixes one place in the framework that assumed that a failing
command is OK.

The remainder of the series fix one test script per one patch, and
at the end of the series, the whole test suite pass for me, even
when merged to the tip of 'seen'.

Note that I let cvs, svn, and p4 tests run only up to the point that
they decide to punt due to lack of external tools and language
bindings they require, so for those of you who do have the necessary
bindings, the scripts may still fail due to construct that are not
"set -e" clean after they call "test_done" for me.

 01/11: test-lib: catch misspelt 'test_expect_successo'
 02/11: t0008: make test "set -e" clean
 03/11: t6002: make test "set -e" clean
 04/11: t4032: make test "set -e" clean
 05/11: t7450: make test "set -e" clean
 06/11: tests: make svn test "set -e" clean
 07/11: t7508: make test "set -e" clean
 08/11: t9200: make test "set -e" clean
 09/11: t940?: make test "set -e" clean
 10/11: t5570: make test "set -e" clean
 11/11: t9902: make test "set -e" clean

 t/lib-git-daemon.sh                | 6 +++---
 t/lib-git-svn.sh                   | 7 +++----
 t/t0008-ignores.sh                 | 2 +-
 t/t4032-diff-inter-hunk-context.sh | 4 ++--
 t/t6002-rev-list-bisect.sh         | 4 ++--
 t/t7450-bad-git-dotfiles.sh        | 2 +-
 t/t7508-status.sh                  | 4 ++--
 t/t9200-git-cvsexportcommit.sh     | 4 ++--
 t/t9400-git-cvsserver-server.sh    | 4 ++--
 t/t9401-git-cvsserver-crlf.sh      | 4 ++--
 t/t9402-git-cvsserver-refs.sh      | 4 ++--
 t/t9902-completion.sh              | 2 +-
 t/test-lib.sh                      | 7 +++++--
 13 files changed, 28 insertions(+), 26 deletions(-)

-- 
2.53.0-886-g529cbd14ff