]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: Write state and log files into $BUILD_DIR
authorMartin Pitt <martin@piware.de>
Mon, 7 Aug 2017 15:30:11 +0000 (17:30 +0200)
committerMartin Pitt <martin@piware.de>
Thu, 10 Aug 2017 06:30:55 +0000 (08:30 +0200)
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

index 61787b6d3398ad973762a77480d963f0b7eb7ff4..169dd46f7343676c7591b1aba753c8ce386dd78f 100644 (file)
@@ -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
-                ) </dev/null >test.log 2>&1
+                ) </dev/null >"$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 ;;