mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-22 02:48:08 +01:00
test: Abort driver if a test script aborts
Previously, if a test script aborted (e.g., because it passed too few arguments to a test function), the test driver loop would simply continue on to the next test script and the final results would declare that everything passed (except that the test count would look suspiciously low, but maybe you just misremembered how many tests there were). Now, if a test script exits with a non-zero status and did not produce a final results file, we propagate that failure out of the driver loop immediately. To keep this simple, this patch removes the PID from the test-results file name. This PID was inherited from the git test system and seems unnecessary, since the file name already includes the name of the test script and the test-results directory is created anew for each run.
This commit is contained in:
parent
d59d9c8152
commit
ec59896de0
3 changed files with 8 additions and 2 deletions
|
@ -79,7 +79,7 @@ test_begin_subtest "Ensure that -v does not suppress test output"
|
||||||
output=$(cd $TEST_DIRECTORY; ./test-verbose -v 2>&1 | suppress_diff_date)
|
output=$(cd $TEST_DIRECTORY; ./test-verbose -v 2>&1 | suppress_diff_date)
|
||||||
expected=$(cat $EXPECTED/test-verbose-yes | suppress_diff_date)
|
expected=$(cat $EXPECTED/test-verbose-yes | suppress_diff_date)
|
||||||
# Do not include the results of test-verbose in totals
|
# Do not include the results of test-verbose in totals
|
||||||
rm $TEST_DIRECTORY/test-results/test-verbose-*
|
rm $TEST_DIRECTORY/test-results/test-verbose
|
||||||
rm -r $TEST_DIRECTORY/tmp.test-verbose
|
rm -r $TEST_DIRECTORY/tmp.test-verbose
|
||||||
test_expect_equal "$output" "$expected"
|
test_expect_equal "$output" "$expected"
|
||||||
|
|
||||||
|
|
|
@ -81,6 +81,12 @@ trap 'e=$?; kill $!; exit $e' HUP INT TERM
|
||||||
for test in $TESTS; do
|
for test in $TESTS; do
|
||||||
$TEST_TIMEOUT_CMD ./$test "$@" &
|
$TEST_TIMEOUT_CMD ./$test "$@" &
|
||||||
wait $!
|
wait $!
|
||||||
|
# If the test failed without producing results, then it aborted,
|
||||||
|
# so we should abort, too.
|
||||||
|
RES=$?
|
||||||
|
if [[ $RES != 0 && ! -e "test-results/${test%.sh}" ]]; then
|
||||||
|
exit $RES
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
trap - HUP INT TERM
|
trap - HUP INT TERM
|
||||||
|
|
||||||
|
|
|
@ -920,7 +920,7 @@ test_done () {
|
||||||
GIT_EXIT_OK=t
|
GIT_EXIT_OK=t
|
||||||
test_results_dir="$TEST_DIRECTORY/test-results"
|
test_results_dir="$TEST_DIRECTORY/test-results"
|
||||||
mkdir -p "$test_results_dir"
|
mkdir -p "$test_results_dir"
|
||||||
test_results_path="$test_results_dir/${0%.sh}-$$"
|
test_results_path="$test_results_dir/${0%.sh}"
|
||||||
|
|
||||||
echo "total $test_count" >> $test_results_path
|
echo "total $test_count" >> $test_results_path
|
||||||
echo "success $test_success" >> $test_results_path
|
echo "success $test_success" >> $test_results_path
|
||||||
|
|
Loading…
Reference in a new issue