From 22077c9c91bff600da78bd17f19a02dfcf1a56bd Mon Sep 17 00:00:00 2001 From: Martin Pitt Date: Mon, 7 Aug 2017 17:30:11 +0200 Subject: [PATCH] test: Write state and log files into $BUILD_DIR This avoids clobbering the source tree with .testdir/test.log files and makes the tests work in situations where the source tree is read-only. --- test/test-functions | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/test/test-functions b/test/test-functions index 61787b6d339..169dd46f734 100644 --- a/test/test-functions +++ b/test/test-functions @@ -23,6 +23,10 @@ fi BASICTOOLS="sh bash setsid loadkeys setfont login sulogin gzip sleep echo mount umount cryptsetup date dmsetup modprobe sed cmp tee rm" DEBUGTOOLS="df free ls stty cat ps ln ip route dmesg dhclient mkdir cp ping dhclient strace less grep id tty touch du sort hostname find" +STATEDIR="${BUILD_DIR:-.}/test/$(basename $(dirname $(realpath $0)))" +STATEFILE="$STATEDIR/.testdir" +TESTLOG="$STATEDIR/test.log" + function find_qemu_bin() { # SUSE and Red Hat call the binary qemu-kvm # Debian and Gentoo call it kvm @@ -626,7 +630,6 @@ inst_libs() { } import_testdir() { - STATEFILE=".testdir" [[ -e $STATEFILE ]] && . $STATEFILE if [[ -z "$TESTDIR" ]] || [[ ! -d "$TESTDIR" ]]; then TESTDIR=$(mktemp --tmpdir=/var/tmp -d -t systemd-test.XXXXXX) @@ -1421,6 +1424,8 @@ do_test() { [[ -d $usrlibdir ]] && libdirs+=" $usrlibdir" && break done + mkdir -p "$STATEDIR" + import_testdir import_initdir @@ -1444,7 +1449,7 @@ do_test() { echo "TEST CLEANUP: $TEST_DESCRIPTION" test_cleanup rm -fr "$TESTDIR" - rm -f .testdir + rm -f "$STATEFILE" exit $?;; --all) echo -n "TEST: $TEST_DESCRIPTION "; @@ -1453,16 +1458,16 @@ do_test() { ret=$? test_cleanup rm -fr "$TESTDIR" - rm -f .testdir + rm -f "$STATEFILE" exit $ret - ) test.log 2>&1 + ) "$TESTLOG" 2>&1 ret=$? if [ $ret -eq 0 ]; then - rm test.log + rm "$TESTLOG" echo "[OK]" else echo "[FAILED]" - echo "see $(pwd)/test.log" + echo "see $TESTLOG" fi exit $ret;; *) break ;; -- 2.39.2