t: stop announcing prereqs

We have a couple of cases where our tests end up announcing that a
certain prerequisite is or isn't fulfilled. While this is supposed to
help the developer it has the downside that it breaks the TAP format.

We could convert these cases to just have a "#" prefix, but it feels
rather unlikely that these are generally useful in the first place. We
already do announce why a specific test is being skipped, so we should
try to use this mechanism to the best extent possible.

Stop announcing these prereqs to fix the TAP format. Where possible,
convert the tests to rely on the prerequisites themselves to announce
why a test ran or didn't ran.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Patrick Steinhardt
2025-06-02 08:44:41 +02:00
committed by Junio C Hamano
parent 8613c2bb6c
commit faac9d46e0
5 changed files with 14 additions and 43 deletions

View File

@@ -10,53 +10,35 @@ export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
auml=$(printf '\303\244') auml=$(printf '\303\244')
aumlcdiar=$(printf '\141\314\210') aumlcdiar=$(printf '\141\314\210')
if test_have_prereq CASE_INSENSITIVE_FS
then
say "will test on a case insensitive filesystem"
test_case=test_expect_failure
else
test_case=test_expect_success
fi
if test_have_prereq UTF8_NFD_TO_NFC if test_have_prereq UTF8_NFD_TO_NFC
then then
say "will test on a unicode corrupting filesystem"
test_unicode=test_expect_failure test_unicode=test_expect_failure
else else
test_unicode=test_expect_success test_unicode=test_expect_success
fi fi
test_have_prereq SYMLINKS || test_expect_success CASE_INSENSITIVE_FS "detection of case insensitive filesystem during repo init" '
say "will test on a filesystem lacking symbolic links"
if test_have_prereq CASE_INSENSITIVE_FS
then
test_expect_success "detection of case insensitive filesystem during repo init" '
test $(git config --bool core.ignorecase) = true test $(git config --bool core.ignorecase) = true
' '
else
test_expect_success "detection of case insensitive filesystem during repo init" ' test_expect_success !CASE_INSENSITIVE_FS "detection of case insensitive filesystem during repo init" '
{ {
test_must_fail git config --bool core.ignorecase >/dev/null || test_must_fail git config --bool core.ignorecase >/dev/null ||
test $(git config --bool core.ignorecase) = false test $(git config --bool core.ignorecase) = false
} }
' '
fi
if test_have_prereq SYMLINKS test_expect_success SYMLINKS "detection of filesystem w/o symlink support during repo init" '
then
test_expect_success "detection of filesystem w/o symlink support during repo init" '
{ {
test_must_fail git config --bool core.symlinks || test_must_fail git config --bool core.symlinks ||
test "$(git config --bool core.symlinks)" = true test "$(git config --bool core.symlinks)" = true
} }
' '
else
test_expect_success "detection of filesystem w/o symlink support during repo init" ' test_expect_success !SYMLINKS "detection of filesystem w/o symlink support during repo init" '
v=$(git config --bool core.symlinks) && v=$(git config --bool core.symlinks) &&
test "$v" = false test "$v" = false
' '
fi
test_expect_success "setup case tests" ' test_expect_success "setup case tests" '
git config core.ignorecase true && git config core.ignorecase true &&

View File

@@ -17,11 +17,6 @@ test_expect_success 'Initialize test directory' '
git commit -m "add normal files" git commit -m "add normal files"
' '
if test_have_prereq !FUNNYNAMES
then
say 'Your filesystem does not allow tabs in filenames.'
fi
test_expect_success FUNNYNAMES 'add files with funny names' ' test_expect_success FUNNYNAMES 'add files with funny names' '
touch -- "tab embedded" "newline${LF}embedded" && touch -- "tab embedded" "newline${LF}embedded" &&
git add -- "tab embedded" "newline${LF}embedded" && git add -- "tab embedded" "newline${LF}embedded" &&

View File

@@ -36,7 +36,7 @@ test_expect_success 'git diff-files -p after editing work tree.' '
# that's as far as it comes # that's as far as it comes
if [ "$(git config --get core.filemode)" = false ] if [ "$(git config --get core.filemode)" = false ]
then then
say 'filemode disabled on the filesystem' skip_all='filemode disabled on the filesystem'
test_done test_done
fi fi

View File

@@ -700,19 +700,17 @@ test_expect_success \
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
# syntax highlighting # syntax highlighting
test_lazy_prereq HIGHLIGHT '
highlight_version=$(highlight --version </dev/null 2>/dev/null) &&
test -n "$highlight_version"
'
highlight_version=$(highlight --version </dev/null 2>/dev/null) test_expect_success HIGHLIGHT '
if [ $? -eq 127 ]; then
say "Skipping syntax highlighting tests: 'highlight' not found"
elif test -z "$highlight_version"; then
say "Skipping syntax highlighting tests: incorrect 'highlight' found"
else
test_set_prereq HIGHLIGHT
cat >>gitweb_config.perl <<-\EOF cat >>gitweb_config.perl <<-\EOF
our $highlight_bin = "highlight"; our $highlight_bin = "highlight";
$feature{'highlight'}{'override'} = 1; $feature{"highlight"}{"override"} = 1;
EOF EOF
fi '
test_expect_success HIGHLIGHT \ test_expect_success HIGHLIGHT \
'syntax highlighting (no highlight, unknown syntax)' \ 'syntax highlighting (no highlight, unknown syntax)' \

View File

@@ -66,10 +66,6 @@ test_expect_success 'prompt - unborn branch' '
test_cmp expected "$actual" test_cmp expected "$actual"
' '
if test_have_prereq !FUNNYNAMES; then
say 'Your filesystem does not allow newlines in filenames.'
fi
test_expect_success FUNNYNAMES 'prompt - with newline in path' ' test_expect_success FUNNYNAMES 'prompt - with newline in path' '
repo_with_newline="repo repo_with_newline="repo
with with