t: prepare conditional test execution for `set -e`

We have some test in our test suite where we use the pattern of
`test ... && test_expect_succeess` to conditionally execute a test. The
problem is that when we decide to not execute the test, we'll indeed
skip the test, but the overall statement will also be unsuccessful. This
will become a problem once we enable `set -e`.

Prepare for this future by turning this into a proper conditional, which
is also a bit easier to read overall.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
main
Patrick Steinhardt 2026-04-21 09:34:18 +02:00 committed by Junio C Hamano
parent 9c64add20b
commit 0c6600cdc7
2 changed files with 20 additions and 16 deletions

View File

@ -40,11 +40,13 @@ t() {
test $(git $cmd $file | grep '^@@ ' | wc -l) = $hunks
"

test -f $expected &&
test_expect_success "$label: check output" "
git $cmd $file | grep -v '^index ' >actual &&
test_cmp $expected actual
"
if test -f $expected
then
test_expect_success "$label: check output" "
git $cmd $file | grep -v '^index ' >actual &&
test_cmp $expected actual
"
fi
}

cat <<EOF >expected.f1.0.1 || exit 1

View File

@ -220,17 +220,19 @@ check_dotx_symlink () {
)
'

test -n "$refuse_index" &&
test_expect_success "refuse to load symlinked $name into index ($type)" '
test_must_fail \
git -C $dir \
-c core.protectntfs \
-c core.protecthfs \
read-tree $tree 2>err &&
grep "invalid path.*$name" err &&
git -C $dir ls-files -s >out &&
test_must_be_empty out
'
if test -n "$refuse_index"
then
test_expect_success "refuse to load symlinked $name into index ($type)" '
test_must_fail \
git -C $dir \
-c core.protectntfs \
-c core.protecthfs \
read-tree $tree 2>err &&
grep "invalid path.*$name" err &&
git -C $dir ls-files -s >out &&
test_must_be_empty out
'
fi
}

check_dotx_symlink gitmodules vanilla .gitmodules