chiark / gitweb /
Test suite: Use make for parallel execution
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 22 Mar 2015 17:59:08 +0000 (17:59 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 22 Mar 2015 17:59:08 +0000 (17:59 +0000)
tests/Makefile [new file with mode: 0644]
tests/run-all

diff --git a/tests/Makefile b/tests/Makefile
new file mode 100644 (file)
index 0000000..011bd3c
--- /dev/null
@@ -0,0 +1,14 @@
+# usage: tests/using-intree make -f tests/Makefile
+# (optionally setting TESTSCRIPTS='tests/tests/foo tests/tests/bar')
+
+TESTSCRIPTS ?= $(shell run-parts --list tests/tests)
+TESTNAMES := $(notdir $(TESTSCRIPTS))
+
+all: $(foreach t,$(TESTNAMES),tests/tmp/$t.ok)
+       @echo "ALL PASSED"
+
+tests/tmp:
+       mkdir -p $@
+
+tests/tmp/%.ok: tests/tmp
+       tests/tests/$* >tests/tmp/$*.log 2>&1
index e2e2a6f..f298cb7 100755 (executable)
@@ -1,13 +1,15 @@
 #!/bin/sh
 set -e
 # convenience script for running the tests outside adt-run
-if [ $# = 0 ]; then
-       set `run-parts --list tests/tests`
+# usage: tests/using-intree tests/run-all
+
+set +e
+jcpus=`perl -MSys::CPU -we 'printf "-j%d\n",Sys::CPU::cpu_count()'`
+set -e
+
+if [ $# != 0 ]; then
+       set TESTSCRIPTS="$*"
 fi
-for f in $@; do
-       echo ==================================================
-       echo $f
-       $f
-       echo ==================================================
-done
-echo "ALL PASSED"
+
+set -x
+exec make $jcpus -f tests/Makefile "$@"