-for test in $TESTS; do
- $TEST_TIMEOUT_CMD ./$test "$@" &
- 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
+if test -z "${NOTMUCH_TEST_SERIALIZE-}" && command -v parallel >/dev/null ; then
+ test -t 1 && export COLORS_WITHOUT_TTY=t || :
+ if parallel --minversion 0 >/dev/null 2>&1 ; then
+ echo "INFO: running tests with GNU parallel"
+ printf '%s\n' $TESTS | $TEST_TIMEOUT_CMD parallel || RES=$?
+ else
+ echo "INFO: running tests with moreutils parallel"
+ $TEST_TIMEOUT_CMD parallel -- $TESTS || RES=$?