If NOTMUCH_TEST_SERIALIZE is non-null all tests will be run in series,
rather than in parallel.
tested on Linux system so such portability issues arise from time to
time.
tested on Linux system so such portability issues arise from time to
time.
Running Tests
-------------
The easiest way to run tests is to say "make test", (or simply run the
Running Tests
-------------
The easiest way to run tests is to say "make test", (or simply run the
make test TEST_CC=gcc TEST_CFLAGS="-g -O2"
make test TEST_CC=gcc TEST_CFLAGS="-g -O2"
+Parallel Execution
+------------------
+If either the moreutils or GNU "parallel" utility is available all
+tests will be run in parallel. If the NOTMUCH_TEST_SERIALIZE variable
+is non-null all tests will be executed sequentially.
+
Quiet Execution
---------------
Quiet Execution
---------------
Normally, when new script starts and when test PASSes you get a message
printed on screen. This printing can be disabled by setting the
NOTMUCH_TEST_QUIET variable to a non-null value. Message on test
Normally, when new script starts and when test PASSes you get a message
printed on screen. This printing can be disabled by setting the
NOTMUCH_TEST_QUIET variable to a non-null value. Message on test
trap 'e=$?; kill $!; exit $e' HUP INT TERM
# Run the tests
trap 'e=$?; kill $!; exit $e' HUP INT TERM
# Run the tests
-if command -v parallel >/dev/null ; then
+if test -z "$NOTMUCH_TEST_SERIALIZE" && command -v parallel >/dev/null ; then
if parallel -h | grep -q GNU ; then
echo "INFO: running tests with GNU parallel"
printf '%s\n' $TESTS | $TEST_TIMEOUT_CMD parallel
if parallel -h | grep -q GNU ; then
echo "INFO: running tests with GNU parallel"
printf '%s\n' $TESTS | $TEST_TIMEOUT_CMD parallel