]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
run-integration-tests: only do the clean operation in the beginning 15281/head
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 31 Mar 2020 10:11:14 +0000 (12:11 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 31 Mar 2020 12:37:20 +0000 (14:37 +0200)
When doing 'make clean', we remove the cached image. So doing
'make -C TEST-NN-foo clean setup run clean-again' in a loop is very slow.
Let's filter out the 'clean' target (if specified), and do the cleaning
in the beginning, and then run other targets in a loop as before.

test/run-integration-tests.sh

index 2435e1894eadf2da4a04a82122bea1a4512a91ac..ac7a28cf2cd32f62e1be6ced1d577ee999e64eea 100755 (executable)
@@ -4,11 +4,11 @@ set -e
 BUILD_DIR="$($(dirname "$0")/../tools/find-build-dir.sh)"
 if [ $# -gt 0 ]; then
     args="$@"
-    do_clean=0
 else
     args="setup run clean-again"
-    do_clean=1
 fi
+args_no_clean=$(sed -r 's/(^| )clean($| )/ /g' <<<$args)
+do_clean=$( [ "$args" = "$args_no_clean" ]; echo $? )
 
 ninja -C "$BUILD_DIR"
 
@@ -20,6 +20,8 @@ FAILURES=0
 
 cd "$(dirname "$0")"
 
+# Let's always do the cleaning operation first, because it destroys the image
+# cache.
 if [ $do_clean = 1 ]; then
     for TEST in TEST-??-* ; do
         ( set -x ; make -C "$TEST" "BUILD_DIR=$BUILD_DIR" clean )
@@ -44,7 +46,7 @@ for TEST in TEST-??-* ; do
 
     echo -e "\n--x-- Running $TEST --x--"
     set +e
-    ( set -x ; make -C "$TEST" "BUILD_DIR=$BUILD_DIR" $args )
+    ( set -x ; make -C "$TEST" "BUILD_DIR=$BUILD_DIR" $args_no_clean )
     RESULT=$?
     set -e
     echo "--x-- Result of $TEST: $RESULT --x--"