From 3be6f501178fd74880bee353ed5c29a9dd97a707 Mon Sep 17 00:00:00 2001 From: Frantisek Sumsal Date: Wed, 15 Apr 2020 15:38:00 +0200 Subject: [PATCH 1/3] test: unify quotation around image names --- test/TEST-03-JOBS/test.sh | 1 + test/TEST-13-NSPAWN-SMOKE/test.sh | 2 +- test/TEST-14-MACHINE-ID/test.sh | 2 +- test/TEST-21-SYSUSERS/test.sh | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/test/TEST-03-JOBS/test.sh b/test/TEST-03-JOBS/test.sh index 33a1fb6fd0..221a18682a 100755 --- a/test/TEST-03-JOBS/test.sh +++ b/test/TEST-03-JOBS/test.sh @@ -2,6 +2,7 @@ set -e TEST_DESCRIPTION="Job-related tests" TEST_NO_QEMU=1 +IMAGE_NAME="default" . $TEST_BASE_DIR/test-functions diff --git a/test/TEST-13-NSPAWN-SMOKE/test.sh b/test/TEST-13-NSPAWN-SMOKE/test.sh index 4a08cfd4ec..fbe52296ce 100755 --- a/test/TEST-13-NSPAWN-SMOKE/test.sh +++ b/test/TEST-13-NSPAWN-SMOKE/test.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -e TEST_DESCRIPTION="systemd-nspawn smoke test" -IMAGE_NAME=nspawn +IMAGE_NAME="nspawn" TEST_NO_NSPAWN=1 . $TEST_BASE_DIR/test-functions diff --git a/test/TEST-14-MACHINE-ID/test.sh b/test/TEST-14-MACHINE-ID/test.sh index d1486f0aae..e8dbf23c58 100755 --- a/test/TEST-14-MACHINE-ID/test.sh +++ b/test/TEST-14-MACHINE-ID/test.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -e TEST_DESCRIPTION="/etc/machine-id testing" -IMAGE_NAME=badid +IMAGE_NAME="badid" TEST_NO_NSPAWN=1 . $TEST_BASE_DIR/test-functions diff --git a/test/TEST-21-SYSUSERS/test.sh b/test/TEST-21-SYSUSERS/test.sh index f7dbbbf47b..527db85b07 100755 --- a/test/TEST-21-SYSUSERS/test.sh +++ b/test/TEST-21-SYSUSERS/test.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -e TEST_DESCRIPTION="Sysuser-related tests" -IMAGE_NAME=sysusers +IMAGE_NAME="sysusers" . $TEST_BASE_DIR/test-functions test_setup() { From e89450921f693d0545ce64c81174fee5d5e11d03 Mon Sep 17 00:00:00 2001 From: Frantisek Sumsal Date: Sun, 17 May 2020 10:46:34 +0200 Subject: [PATCH 2/3] test: fix public/private image detection and prefer the latter one --- test/test-functions | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/test/test-functions b/test/test-functions index 79130c3984..0df8896fd6 100644 --- a/test/test-functions +++ b/test/test-functions @@ -329,12 +329,13 @@ systemd.wants=testsuite-$1.service ${_end} \ $KERNEL_APPEND \ " + [ -e "$IMAGE_PRIVATE" ] && image="$IMAGE_PRIVATE" || image="$IMAGE_PUBLIC" QEMU_OPTIONS="-smp $QEMU_SMP \ -net none \ -m $QEMU_MEM \ -nographic \ -kernel $KERNEL_BIN \ --drive format=raw,cache=unsafe,file=${IMAGESTATEDIR}/${IMAGE_NAME}.img \ +-drive format=raw,cache=unsafe,file=$image \ $QEMU_OPTIONS \ " @@ -692,16 +693,14 @@ create_empty_image() { _size=$((4*_size)) fi - image="${TESTDIR}/${IMAGE_NAME}.img" - public="$IMAGESTATEDIR/${IMAGE_NAME}.img" - echo "Setting up $public (${_size} MB)" - rm -f "$image" "$public" + echo "Setting up $IMAGE_PUBLIC (${_size} MB)" + rm -f "$IMAGE_PRIVATE" "$IMAGE_PUBLIC" # Create the blank file to use as a root filesystem - truncate -s "${_size}M" "$image" - ln -vs "$(realpath $image)" "$public" + truncate -s "${_size}M" "$IMAGE_PRIVATE" + ln -vs "$(realpath $IMAGE_PRIVATE)" "$IMAGE_PUBLIC" - LOOPDEV=$(losetup --show -P -f "$public") + LOOPDEV=$(losetup --show -P -f "$IMAGE_PUBLIC") [ -b "$LOOPDEV" ] || return 1 sfdisk "$LOOPDEV" < Date: Sun, 17 May 2020 10:48:16 +0200 Subject: [PATCH 3/3] test: introduce TEST_PARALLELIZE to support running tests in parallel Support running tests in parallel by switching to copying of the base image instead of symlinking it.. This still requires some setup steps, like running `make setup` on tests which have unique $IMAGE_NAME beforehand (and sequentially), otherwise they'll all try to create the same base image when started in parallel, leading to nasty issues. However, as running the integration tests in parallel is such an unusual use case it should be good enough, for now. --- test/test-functions | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/test/test-functions b/test/test-functions index 0df8896fd6..f5a798b4b8 100644 --- a/test/test-functions +++ b/test/test-functions @@ -18,6 +18,7 @@ EFI_MOUNT="${EFI_MOUNT:-$(bootctl -x 2>/dev/null || echo /boot)}" QEMU_MEM="${QEMU_MEM:-512M}" IMAGE_NAME=${IMAGE_NAME:-default} TEST_REQUIRE_INSTALL_TESTS="${TEST_REQUIRE_INSTALL_TESTS:-1}" +TEST_PARALLELIZE="${TEST_PARALLELIZE:-0}" LOOPDEV= # Decide if we can (and want to) run QEMU with KVM acceleration. @@ -2006,7 +2007,11 @@ test_setup() { mount_initdir elif [ -e "$IMAGE_PUBLIC" ]; then echo "Reusing existing cached image $IMAGE_PUBLIC → $(realpath $IMAGE_PUBLIC)" - ln -s "$(realpath $IMAGE_PUBLIC)" "$IMAGE_PRIVATE" + if [ ${TEST_PARALLELIZE} -ne 0 ]; then + cp -v "$(realpath $IMAGE_PUBLIC)" "$IMAGE_PRIVATE" + else + ln -sv "$(realpath $IMAGE_PUBLIC)" "$IMAGE_PRIVATE" + fi mount_initdir else test_create_image