travis-ci: only print test failures if there are test results available
authorSZEDER Gábor <szeder.dev@gmail.com>
Wed, 27 Dec 2017 16:36:03 +0000 (17:36 +0100)
committerJunio C Hamano <gitster@pobox.com>
Wed, 27 Dec 2017 20:15:22 +0000 (12:15 -0800)
When a build job running the test suite fails, our
'ci/print-test-failures.sh' script scans all 't/test-results/*.exit'
files to find failed tests and prints their verbose output. However,
if a build job were to fail before it ever gets to run the test suite,
then there will be no files to match the above pattern and the shell
will take the pattern literally, resulting in errors like this in the
trace log:

cat: t/test-results/*.exit: No such file or directory
------------------------------------------------------------------------
t/test-results/*.out...
------------------------------------------------------------------------
cat: t/test-results/*.out: No such file or directory

Check upfront and proceed only if there are any such files present.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Reviewed-by: Lars Schneider <larsxschneider@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
ci/print-test-failures.sh
index 97cc0590190a19c5e13a539587ead0e73cc4e24d..4f261ddc012fb162b7d414b065fe251ceff91bee 100755 (executable)
@@ -8,6 +8,12 @@
 # Tracing executed commands would produce too much noise in the loop below.
 set +x
 
 # Tracing executed commands would produce too much noise in the loop below.
 set +x
 
+if ! ls t/test-results/*.exit >/dev/null 2>/dev/null
+then
+       echo "Build job failed before the tests could have been run"
+       exit
+fi
+
 for TEST_EXIT in t/test-results/*.exit
 do
        if [ "$(cat "$TEST_EXIT")" != "0" ]
 for TEST_EXIT in t/test-results/*.exit
 do
        if [ "$(cat "$TEST_EXIT")" != "0" ]