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>
This commit is contained in:
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