mirror of
https://git.notmuchmail.org/git/notmuch
synced 2025-01-03 15:21:41 +01:00
test/test-lib.sh: use $test_subtest_name in all tests
Set the variable '$test_subtest_name' in all functions which starts a new test and use that variable in all functions that output test results. Additionally output the latest '$test_subtest_name' in case of abnormal exit, to avoid confusion.
This commit is contained in:
parent
3901bbca2e
commit
3a15602d8e
1 changed files with 29 additions and 23 deletions
|
@ -201,7 +201,11 @@ die () {
|
|||
then
|
||||
exit $code
|
||||
else
|
||||
echo >&5 "FATAL: Unexpected exit with code $code"
|
||||
exec >&5
|
||||
say_color error '%-6s' FATAL
|
||||
echo " $test_subtest_name"
|
||||
echo
|
||||
echo "Unexpected exit while executing $0. Exit code $code."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
@ -498,12 +502,12 @@ test_expect_equal ()
|
|||
if ! test_skip "$test_subtest_name"
|
||||
then
|
||||
if [ "$output" = "$expected" ]; then
|
||||
test_ok_ "$test_subtest_name"
|
||||
test_ok_
|
||||
else
|
||||
testname=$this_test.$test_count
|
||||
echo "$expected" > $testname.expected
|
||||
echo "$output" > $testname.output
|
||||
test_failure_ "$test_subtest_name" "$(diff -u $testname.expected $testname.output)"
|
||||
test_failure_ "$(diff -u $testname.expected $testname.output)"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
@ -524,12 +528,12 @@ test_expect_equal_file ()
|
|||
if ! test_skip "$test_subtest_name"
|
||||
then
|
||||
if diff -q "$file1" "$file2" >/dev/null ; then
|
||||
test_ok_ "$test_subtest_name"
|
||||
test_ok_
|
||||
else
|
||||
testname=$this_test.$test_count
|
||||
cp "$file1" "$testname.$basename1"
|
||||
cp "$file2" "$testname.$basename2"
|
||||
test_failure_ "$test_subtest_name" "$(diff -u "$testname.$basename1" "$testname.$basename2")"
|
||||
test_failure_ "$(diff -u "$testname.$basename1" "$testname.$basename2")"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
@ -567,9 +571,9 @@ test_emacs_expect_t () {
|
|||
result=$(cat OUTPUT)
|
||||
if [ "$result" = t ]
|
||||
then
|
||||
test_ok_ "$test_subtest_name"
|
||||
test_ok_
|
||||
else
|
||||
test_failure_ "$test_subtest_name" "${result}"
|
||||
test_failure_ "${result}"
|
||||
fi
|
||||
else
|
||||
# Restore state after the (non) test.
|
||||
|
@ -670,12 +674,12 @@ test_require_external_prereq () {
|
|||
|
||||
test_ok_ () {
|
||||
if test "$test_subtest_known_broken_" = "t"; then
|
||||
test_known_broken_ok_ "$@"
|
||||
test_known_broken_ok_
|
||||
return
|
||||
fi
|
||||
test_success=$(($test_success + 1))
|
||||
say_color pass "%-6s" "PASS"
|
||||
echo " $@"
|
||||
echo " $test_subtest_name"
|
||||
}
|
||||
|
||||
test_failure_ () {
|
||||
|
@ -684,7 +688,7 @@ test_failure_ () {
|
|||
return
|
||||
fi
|
||||
test_failure=$(($test_failure + 1))
|
||||
test_failure_message_ "FAIL" "$@"
|
||||
test_failure_message_ "FAIL" "$test_subtest_name" "$@"
|
||||
test "$immediate" = "" || { GIT_EXIT_OK=t; exit 1; }
|
||||
return 1
|
||||
}
|
||||
|
@ -701,13 +705,13 @@ test_known_broken_ok_ () {
|
|||
test_reset_state_
|
||||
test_fixed=$(($test_fixed+1))
|
||||
say_color pass "%-6s" "FIXED"
|
||||
echo " $@"
|
||||
echo " $test_subtest_name"
|
||||
}
|
||||
|
||||
test_known_broken_failure_ () {
|
||||
test_reset_state_
|
||||
test_broken=$(($test_broken+1))
|
||||
test_failure_message_ "BROKEN" "$@"
|
||||
test_failure_message_ "BROKEN" "$test_subtest_name" "$@"
|
||||
return 1
|
||||
}
|
||||
|
||||
|
@ -775,6 +779,7 @@ test_expect_success () {
|
|||
test "$#" = 3 && { prereq=$1; shift; } || prereq=
|
||||
test "$#" = 2 ||
|
||||
error "bug in the test script: not 2 or 3 parameters to test-expect-success"
|
||||
test_subtest_name="$1"
|
||||
test_reset_state_
|
||||
if ! test_skip "$@"
|
||||
then
|
||||
|
@ -784,9 +789,9 @@ test_expect_success () {
|
|||
test_check_missing_external_prereqs_ "$@" ||
|
||||
if [ "$run_ret" = 0 -a "$eval_ret" = 0 ]
|
||||
then
|
||||
test_ok_ "$1"
|
||||
test_ok_
|
||||
else
|
||||
test_failure_ "$@"
|
||||
test_failure_ "$2"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
@ -795,6 +800,7 @@ test_expect_code () {
|
|||
test "$#" = 4 && { prereq=$1; shift; } || prereq=
|
||||
test "$#" = 3 ||
|
||||
error "bug in the test script: not 3 or 4 parameters to test-expect-code"
|
||||
test_subtest_name="$2"
|
||||
test_reset_state_
|
||||
if ! test_skip "$@"
|
||||
then
|
||||
|
@ -804,9 +810,9 @@ test_expect_code () {
|
|||
test_check_missing_external_prereqs_ "$@" ||
|
||||
if [ "$run_ret" = 0 -a "$eval_ret" = "$1" ]
|
||||
then
|
||||
test_ok_ "$2"
|
||||
test_ok_
|
||||
else
|
||||
test_failure_ "$@"
|
||||
test_failure_ "exit code $eval_ret, expected $1" "$3"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
@ -823,10 +829,10 @@ test_external () {
|
|||
test "$#" = 4 && { prereq=$1; shift; } || prereq=
|
||||
test "$#" = 3 ||
|
||||
error >&5 "bug in the test script: not 3 or 4 parameters to test_external"
|
||||
descr="$1"
|
||||
test_subtest_name="$1"
|
||||
shift
|
||||
test_reset_state_
|
||||
if ! test_skip "$descr" "$@"
|
||||
if ! test_skip "$test_subtest_name" "$@"
|
||||
then
|
||||
# Announce the script to reduce confusion about the
|
||||
# test output that follows.
|
||||
|
@ -837,9 +843,9 @@ test_external () {
|
|||
"$@" 2>&4
|
||||
if [ "$?" = 0 ]
|
||||
then
|
||||
test_ok_ "$descr"
|
||||
test_ok_
|
||||
else
|
||||
test_failure_ "$descr" "$@"
|
||||
test_failure_ "$@"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
@ -853,11 +859,11 @@ test_external_without_stderr () {
|
|||
stderr="$tmp/git-external-stderr.$$.tmp"
|
||||
test_external "$@" 4> "$stderr"
|
||||
[ -f "$stderr" ] || error "Internal error: $stderr disappeared."
|
||||
descr="no stderr: $1"
|
||||
test_subtest_name="no stderr: $1"
|
||||
shift
|
||||
if [ ! -s "$stderr" ]; then
|
||||
rm "$stderr"
|
||||
test_ok_ "$descr"
|
||||
test_ok_
|
||||
else
|
||||
if [ "$verbose" = t ]; then
|
||||
output=`echo; echo Stderr is:; cat "$stderr"`
|
||||
|
@ -866,7 +872,7 @@ test_external_without_stderr () {
|
|||
fi
|
||||
# rm first in case test_failure exits.
|
||||
rm "$stderr"
|
||||
test_failure_ "$descr" "$@" "$output"
|
||||
test_failure_ "$@" "$output"
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue