summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuca Boccassi <bluca@debian.org>2023-06-13 22:13:14 +0200
committerGitHub <noreply@github.com>2023-06-13 22:13:14 +0200
commit59936b66d12ede538609037322c938fc4db55bb8 (patch)
tree0459aac95af25d9dba2c207512e9c6d8ea88cde5
parentMerge pull request #27977 from DaanDeMeyer/update-mkosi (diff)
parenttest: re-enable TEST-02 on ppc64le (diff)
downloadsystemd-59936b66d12ede538609037322c938fc4db55bb8.tar.xz
systemd-59936b66d12ede538609037322c938fc4db55bb8.zip
Merge pull request #27952 from mrc0mmand/drop-TEST-61
test: merge TEST-61-UNITTESTS-QEMU with TEST-02-UNITTESTS
-rw-r--r--test/TEST-02-UNITTESTS/deny-list-ubuntu-ci-ppc64el0
-rwxr-xr-xtest/TEST-02-UNITTESTS/test.sh15
l---------test/TEST-61-UNITTESTS-QEMU/Makefile1
-rw-r--r--test/TEST-61-UNITTESTS-QEMU/deny-list-ubuntu-ci0
-rwxr-xr-xtest/TEST-61-UNITTESTS-QEMU/test.sh28
-rw-r--r--test/test-functions2
-rwxr-xr-xtest/units/testsuite-02.sh17
-rw-r--r--test/units/testsuite-61.service8
-rwxr-xr-xtest/units/testsuite-61.sh11
9 files changed, 27 insertions, 55 deletions
diff --git a/test/TEST-02-UNITTESTS/deny-list-ubuntu-ci-ppc64el b/test/TEST-02-UNITTESTS/deny-list-ubuntu-ci-ppc64el
deleted file mode 100644
index e69de29bb2..0000000000
--- a/test/TEST-02-UNITTESTS/deny-list-ubuntu-ci-ppc64el
+++ /dev/null
diff --git a/test/TEST-02-UNITTESTS/test.sh b/test/TEST-02-UNITTESTS/test.sh
index 3646aa678e..f165c99368 100755
--- a/test/TEST-02-UNITTESTS/test.sh
+++ b/test/TEST-02-UNITTESTS/test.sh
@@ -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
index e9f93b1104..0000000000
--- a/test/TEST-61-UNITTESTS-QEMU/Makefile
+++ /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
index e69de29bb2..0000000000
--- a/test/TEST-61-UNITTESTS-QEMU/deny-list-ubuntu-ci
+++ /dev/null
diff --git a/test/TEST-61-UNITTESTS-QEMU/test.sh b/test/TEST-61-UNITTESTS-QEMU/test.sh
deleted file mode 100755
index 45c5f71bfe..0000000000
--- a/test/TEST-61-UNITTESTS-QEMU/test.sh
+++ /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 "$@"
diff --git a/test/test-functions b/test/test-functions
index 8baf16d335..0c20e60ad3 100644
--- a/test/test-functions
+++ b/test/test-functions
@@ -2590,7 +2590,7 @@ inst_simple() {
inst "${src%/*}/.${src##*/}.hmac" "${target%/*}/.${target##*/}.hmac"
fi
ddebug "Installing $src"
- cp --sparse=always -pfL "$src" "${initdir}/$target"
+ cp --sparse=always --force --dereference --preserve=all "$src" "${initdir}/$target"
}
# find symlinks linked to given library file
diff --git a/test/units/testsuite-02.sh b/test/units/testsuite-02.sh
index ca54fc4018..4c4479287f 100755
--- a/test/units/testsuite-02.sh
+++ b/test/units/testsuite-02.sh
@@ -9,14 +9,27 @@ 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
+# Reset state
rm -fv /failed-tests /skipped-tests /skipped
+if ! systemd-detect-virt -qc; then
+ # Make sure ping works for unprivileged users (for test-bpf-firewall)
+ sysctl net.ipv4.ping_group_range="0 2147483647"
+fi
+
# Check & report test results
# Arguments:
# $1: test path
diff --git a/test/units/testsuite-61.service b/test/units/testsuite-61.service
deleted file mode 100644
index 568960c21d..0000000000
--- a/test/units/testsuite-61.service
+++ /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
index 0b7b0116d3..0000000000
--- a/test/units/testsuite-61.sh
+++ /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