On Sat, Dec 16, 2017 at 7:58 AM, SZEDER Gábor <szeder.dev@xxxxxxxxx> wrote: > 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@xxxxxxxxx> > --- > diff --git a/ci/print-test-failures.sh b/ci/print-test-failures.sh > @@ -8,6 +8,12 @@ > +if test t/test-results/*.exit = "t/test-results/*.exit" Isn't the above going to cause 'test' to error out? $ mkdir -p t/test-results $ >t/test-results/a.exit $ >t/test-results/b.exit $ test t/test-results/*.exit = 't/test-results/*.exit' -bash: test: too many arguments I'd think you'd want to capture the result of the expansion of t/test-result/*.exit as a string and compare that instead. > +then > + echo "Build job failed before the tests could have been run" > + exit > +fi