diff options
Diffstat (limited to 'tests/run-all')
-rwxr-xr-x | tests/run-all | 34 |
1 files changed, 30 insertions, 4 deletions
diff --git a/tests/run-all b/tests/run-all index c930171..736e0fe 100755 --- a/tests/run-all +++ b/tests/run-all @@ -2,6 +2,9 @@ set -e # convenience script for running the tests outside adt-run # usage: tests/using-intree tests/run-all [-p|--progressive] [tests/tests/*] +# +# passing `:' as if it were tests/tests/something is +# a no-op and therefore just means to (delete and) set up the tmpdir set -o pipefail @@ -17,13 +20,36 @@ done ncpus=$(nproc || echo 1) jcpus=-j$(( ncpus * 134 / 100 )) -if [ $# != 0 ]; then - set TESTSCRIPTS="$*" +if [ "x$DGIT_TESTS_TMPDIR" != x ]; then + tmpdir="$PWD" + tmpdir="${tmpdir#/}" + tmpdir="${tmpdir//!/!#!}" + tmpdir="${tmpdir//\//!}" + tmpdir="$DGIT_TESTS_TMPDIR/$tmpdir" + rm -f tests/tmp + ln -ns -- "$tmpdir" tests/tmp +else + tmpdir=tests/tmp fi -mkdir -p tests/tmp +case "$DGIT_TESTS_PROGRESSIVE" in +''|n) + rm -rf -- "$tmpdir" + ;; +esac + +mkdir -p -- "$tmpdir" + +case "$1" in +:) + shift + if [ $# = 0 ]; then exit 0; fi + ;; +esac -${DGIT_TESTS_PROGRESSIVE+:} rm -f tests/tmp/*.ok +if [ $# != 0 ]; then + set TESTSCRIPTS="$*" +fi export DGIT_GNUPG_STUNT_ERRLOG=$( tty -s ||: ) |