chiark / gitweb /
test suite: editing a test script overrides DGIT_TESTS_PROGRESSIVE.
[dgit.git] / tests / run-all
index e2e2a6f517f51b5ae99df2e663a0afca90aaba13..c93017192ee428ee1135b133bc39ea4c1f7808b7 100755 (executable)
@@ -1,13 +1,33 @@
-#!/bin/sh
+#!/bin/bash
 set -e
 # convenience script for running the tests outside adt-run
-if [ $# = 0 ]; then
-       set `run-parts --list tests/tests`
-fi
-for f in $@; do
-       echo ==================================================
-       echo $f
-       $f
-       echo ==================================================
+# usage: tests/using-intree tests/run-all [-p|--progressive] [tests/tests/*]
+
+set -o pipefail
+
+while [ $# != 0 ]; do
+       case "$1" in
+       --progressive|-p)       shift; export DGIT_TESTS_PROGRESSIVE=y;;
+       --)                     shift; break ;;
+       -*)     echo >&2 "run-all: unknown option $1"; exit 20 ;;
+       *)                      break ;;
+       esac
 done
-echo "ALL PASSED"
+
+ncpus=$(nproc || echo 1)
+jcpus=-j$(( ncpus * 134 / 100 ))
+
+if [ $# != 0 ]; then
+       set TESTSCRIPTS="$*"
+fi
+
+mkdir -p tests/tmp
+
+${DGIT_TESTS_PROGRESSIVE+:} rm -f tests/tmp/*.ok
+
+export DGIT_GNUPG_STUNT_ERRLOG=$( tty -s ||: )
+
+(
+ set -x
+ exec make $jcpus -k -f tests/Makefile "$@"
+) 2>&1 |tee tests/tmp/run-all.log