[PATCH] tests: environment variable to specify that tests should be serialized

Subject: [PATCH] tests: environment variable to specify that tests should be serialized

Date: Mon, 6 May 2019 04:44:09 +0000

To: Notmuch Mail


From: Rollins, Jameson

From: Jameson Graef Rollins <jrollins@finestructure.net>

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
 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

notmuch mailing list