]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: merge TEST-61-UNITTESTS-QEMU with TEST-02-UNITTESTS
authorFrantisek Sumsal <frantisek@sumsal.cz>
Wed, 7 Jun 2023 11:51:02 +0000 (13:51 +0200)
committerFrantisek Sumsal <frantisek@sumsal.cz>
Tue, 13 Jun 2023 08:15:27 +0000 (10:15 +0200)
The test was originally introduced for Ubuntu CI, as it uses
PREFER_NSPAWN=1, but it was subsequently disabled two years ago [0], so
it was pretty much useless. Let's merge it into TEST-02 and tweak it a
bit to run only certain tests under QEMU when $TEST_PREFER_NSPAWN is
set.

[0] b152adbfa9b708dade8559b9962241902bf2eb7c

test/TEST-02-UNITTESTS/test.sh
test/TEST-61-UNITTESTS-QEMU/Makefile [deleted symlink]
test/TEST-61-UNITTESTS-QEMU/deny-list-ubuntu-ci [deleted file]
test/TEST-61-UNITTESTS-QEMU/test.sh [deleted file]
test/units/testsuite-02.sh
test/units/testsuite-61.service [deleted file]
test/units/testsuite-61.sh [deleted file]

index 3646aa678e45007dbc33caa68f68e453192199ca..f165c993689b7ba7b075a6d4983987a1c8d9575f 100755 (executable)
@@ -2,6 +2,9 @@
 # SPDX-License-Identifier: LGPL-2.1-or-later
 set -e
 
+# shellcheck source=test/test-functions
+. "${TEST_BASE_DIR:?}/test-functions"
+
 TEST_DESCRIPTION="Run unit tests under containers"
 RUN_IN_UNPRIVILEGED_CONTAINER=yes
 # Some tests make collecting coverage impossible (like test-mount-util, which
@@ -9,8 +12,12 @@ RUN_IN_UNPRIVILEGED_CONTAINER=yes
 # case
 IGNORE_MISSING_COVERAGE=yes
 
-# embed some newlines in the kernel command line to stress our test suite
+# Embed some newlines in the kernel command line to stress our test suite
+# Also, pass $TEST_PREFER_NSPAWN to the VM/container if set
+#
+# shellcheck disable=SC2015
 KERNEL_APPEND="
+$(get_bool "${TEST_PREFER_NSPAWN:-0}" && echo "systemd.setenv=TEST_PREFER_NSPAWN=1" || :)
 
 frobnicate!
 
@@ -19,9 +26,9 @@ systemd.setenv=TEST_CMDLINE_NEWLINE=bar
 
 $KERNEL_APPEND
 "
-
-# shellcheck source=test/test-functions
-. "${TEST_BASE_DIR:?}/test-functions"
+# Override $TEST_PREFER_NSPAWN if it was set to always run both the QEMU and
+# the nspawn part of the test
+TEST_PREFER_NSPAWN=no
 
 test_append_files() {
     if get_bool "$LOOKS_LIKE_SUSE"; then
diff --git a/test/TEST-61-UNITTESTS-QEMU/Makefile b/test/TEST-61-UNITTESTS-QEMU/Makefile
deleted file mode 120000 (symlink)
index e9f93b1..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../TEST-01-BASIC/Makefile
\ No newline at end of file
diff --git a/test/TEST-61-UNITTESTS-QEMU/deny-list-ubuntu-ci b/test/TEST-61-UNITTESTS-QEMU/deny-list-ubuntu-ci
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/test/TEST-61-UNITTESTS-QEMU/test.sh b/test/TEST-61-UNITTESTS-QEMU/test.sh
deleted file mode 100755 (executable)
index 45c5f71..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/usr/bin/env bash
-# SPDX-License-Identifier: LGPL-2.1-or-later
-set -e
-
-TEST_DESCRIPTION="Run unit tests under qemu"
-# this subset of unit tests requires qemu, so they are ran here to avoid slowing down TEST-02
-TEST_NO_NSPAWN=1
-
-# embed some newlines in the kernel command line to stress our test suite
-KERNEL_APPEND="
-
-frobnicate!
-
-$KERNEL_APPEND
-"
-
-# shellcheck source=test/test-functions
-. "${TEST_BASE_DIR:?}/test-functions"
-
-check_result_nspawn() {
-    check_result_nspawn_unittests "${1}"
-}
-
-check_result_qemu() {
-    check_result_qemu_unittests
-}
-
-do_test "$@"
index ca54fc4018f99f50b48f9c0562ab82f85b27acb7..f0e0f091fd61fa352288956fe99ab0adcac0f6a5 100755 (executable)
@@ -9,9 +9,17 @@ if ! systemd-detect-virt -qc && [[ "${TEST_CMDLINE_NEWLINE:-}" != bar ]]; then
     exit 1
 fi
 
+# If we're running with TEST_PREFER_NSPAWN=1 limit the set of tests we run
+# in QEMU to only those that can't run in a container to avoid running
+# the same tests again in a, most likely, very slow environment
+if ! systemd-detect-virt -qc && [[ "${TEST_PREFER_NSPAWN:-0}" -ne 0 ]]; then
+    TESTS_GLOB="test-loop-block"
+else
+    TESTS_GLOB=${TESTS_GLOB:-test-*}
+fi
+
 NPROC=$(nproc)
 MAX_QUEUE_SIZE=${NPROC:-2}
-TESTS_GLOB=${TESTS_GLOB:-test-*}
 mapfile -t TEST_LIST < <(find /usr/lib/systemd/tests/unit-tests/ -maxdepth 1 -type f -name "${TESTS_GLOB}")
 
 # reset state
diff --git a/test/units/testsuite-61.service b/test/units/testsuite-61.service
deleted file mode 100644 (file)
index 568960c..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-# SPDX-License-Identifier: LGPL-2.1-or-later
-[Unit]
-Description=TEST-61-UNITTESTS-QEMU
-
-[Service]
-ExecStartPre=rm -f /failed /testok
-ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh
-Type=oneshot
diff --git a/test/units/testsuite-61.sh b/test/units/testsuite-61.sh
deleted file mode 100755 (executable)
index 0b7b011..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/usr/bin/env bash
-# SPDX-License-Identifier: LGPL-2.1-or-later
-# shellcheck disable=SC2317
-set -eux
-set -o pipefail
-
-TESTS_GLOB="test-loop-block"
-# shellcheck source=test/units/testsuite-02.sh
-. "$(dirname "$0")/testsuite-02.sh"
-
-exit 0