t: prepare `test_must_fail ()` for `set -e`
The helper function `test_must_fail ()` executes a specific Git command that may or may not fail in a specific way. This is done by executing the command in question and then comparing its exit code against a set of conditions. This works, but once we run our test suite with `set -e` we may bail out of `test_must_fail ()` early in case the command actually fails, even though we expect it to fail. Prepare for this change by handling the failed case with `||`. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Patrick Steinhardt committed
Apr 21, 2026 at 09:34 UTC
990fd368ac7fcb56f69a27ba341cac10f04e285b
1 file changed
+3
-2
t/test-lib-functions.sh
+3
-2
@@ -1195,8 +1195,9 @@ test_must_fail () {
1195
echo >&7 "test_must_fail: only 'git' is allowed: $*"
1196
return 1
1197
fi
1198
- "$@" 2>&7
1199
- exit_code=$?
1198
+
1199
+ exit_code=0; "$@" 2>&7 || exit_code=$?
1200
+
1201
if test $exit_code -eq 0 && ! list_contains "$_test_ok" success
1202
then
1203
echo >&4 "test_must_fail: command succeeded: $*"