From eeff4319960d88e60c202dac4047913262d67d85 Mon Sep 17 00:00:00 2001 From: Jameson Graef Rollins Date: Mon, 6 May 2019 04:44:09 +0000 Subject: [PATCH] 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. --- test/README | 8 ++++++-- test/notmuch-test | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/test/README b/test/README index b378c3ff..3f54af58 100644 --- a/test/README +++ b/test/README @@ -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 time. - Running Tests ------------- 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" +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 --------------- - 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 diff --git a/test/notmuch-test b/test/notmuch-test index a4b7a1eb..bd3e080a 100755 --- a/test/notmuch-test +++ b/test/notmuch-test @@ -40,7 +40,7 @@ fi 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