fi
trap 'e=$?; kill $!; exit $e' HUP INT TERM
+
+META_FAILURE=
# Run the tests
if test -z "$NOTMUCH_TEST_SERIALIZE" && command -v parallel >/dev/null ; then
test -t 1 && export COLORS_WITHOUT_TTY=t || :
fi
RES=$?
if [[ $RES != 0 ]]; then
- echo "parallel test suite returned error code $RES"
- exit $RES
+ META_FAILURE="parallel test suite returned error code $RES"
fi
else
for test in $TESTS; do
RES=$?
testname=$(basename $test .sh)
if [[ $RES != 0 && ! -e "$NOTMUCH_BUILDDIR/test/test-results/$testname" ]]; then
- exit $RES
+ META_FAILURE="Aborting on $testname (returned $RES)"
+ break
fi
done
fi
echo
$NOTMUCH_SRCDIR/test/aggregate-results.sh $NOTMUCH_BUILDDIR/test/test-results/*
ev=$?
+if [ -n "$META_FAILURE" ]; then
+ printf 'ERROR: %s\n' "$META_FAILURE"
+ if [ $ev = 0 ]; then
+ ev=$RES
+ fi
+fi
# Clean up
rm -rf $NOTMUCH_BUILDDIR/test/test-results