tests: environment variable to specify that tests should be serialized

If NOTMUCH_TEST_SERIALIZE is non-null all tests will be run in series,
rather than in parallel.
This commit is contained in:
Jameson Graef Rollins 2019-05-06 04:44:09 +00:00 committed by David Bremner
parent 908d930d22
commit eeff431996
2 changed files with 7 additions and 3 deletions

View file

@ -43,7 +43,6 @@ these system tools. Most often the tests are written, reviewed and
tested on Linux system so such portability issues arise from time to tested on Linux system so such portability issues arise from time to
time. time.
Running Tests Running Tests
------------- -------------
The easiest way to run tests is to say "make test", (or simply run the The easiest way to run tests is to say "make test", (or simply run the
@ -105,9 +104,14 @@ to with emacs, e.g.
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 Normally, when new script starts and when test PASSes you get a message
printed on screen. This printing can be disabled by setting the printed on screen. This printing can be disabled by setting the
NOTMUCH_TEST_QUIET variable to a non-null value. Message on test NOTMUCH_TEST_QUIET variable to a non-null value. Message on test

View file

@ -40,7 +40,7 @@ fi
trap 'e=$?; kill $!; exit $e' HUP INT TERM trap 'e=$?; kill $!; exit $e' HUP INT TERM
# Run the tests # 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 if parallel -h | grep -q GNU ; then
echo "INFO: running tests with GNU parallel" echo "INFO: running tests with GNU parallel"
printf '%s\n' $TESTS | $TEST_TIMEOUT_CMD parallel printf '%s\n' $TESTS | $TEST_TIMEOUT_CMD parallel