From 71cde065b5492fc1324422710c4d84de51361020 Mon Sep 17 00:00:00 2001 From: Frantisek Sumsal Date: Sun, 26 Jun 2022 20:52:12 +0200 Subject: [PATCH 1/3] test: make TEST-21-DFUZZER work in containers by avoiding fuzzing networkd and timesyncd when running in a container. --- test/units/testsuite-21.sh | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/test/units/testsuite-21.sh b/test/units/testsuite-21.sh index e9bf18603a..7158688362 100755 --- a/test/units/testsuite-21.sh +++ b/test/units/testsuite-21.sh @@ -33,17 +33,31 @@ BUS_LIST=( org.freedesktop.locale1 org.freedesktop.login1 org.freedesktop.machine1 - org.freedesktop.network1 org.freedesktop.portable1 org.freedesktop.resolve1 org.freedesktop.systemd1 org.freedesktop.timedate1 - org.freedesktop.timesync1 ) # systemd-oomd requires PSI if tail -n +1 /proc/pressure/{cpu,io,memory}; then - BUS_LIST+=(org.freedesktop.oom1) + BUS_LIST+=( + org.freedesktop.oom1 + ) +fi + +# Some services require specific conditions: +# - systemd-timesyncd can't run in a container +# - systemd-networkd can run in a container if it has CAP_NET_ADMIN capability +if ! systemd-detect-virt --container; then + BUS_LIST+=( + org.freedesktop.network1 + org.freedesktop.timesync1 + ) +elif busctl introspect org.freedesktop.network1 / &>/dev/null; then + BUS_LIST+=( + org.freedesktop.network1 + ) fi SESSION_BUS_LIST=( From eda0e525d35db485418e908e7a30c106b8587251 Mon Sep 17 00:00:00 2001 From: Frantisek Sumsal Date: Sun, 26 Jun 2022 20:57:31 +0200 Subject: [PATCH 2/3] test: run TEST-21 in nspawn only if $TEST_PREFER_NSPAWN is set so we can run it under nspawn in CIs which don't support nested KVM, but avoid running it twice (both under nspawn and qemu) in CIs which support both methods. --- test/TEST-21-DFUZZER/test.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/test/TEST-21-DFUZZER/test.sh b/test/TEST-21-DFUZZER/test.sh index 7669e4e0ad..eb0a6549e0 100755 --- a/test/TEST-21-DFUZZER/test.sh +++ b/test/TEST-21-DFUZZER/test.sh @@ -3,7 +3,6 @@ set -e TEST_DESCRIPTION="Fuzz our D-Bus interfaces with dfuzzer" -TEST_NO_NSPAWN=1 TEST_SUPPORTING_SERVICES_SHOULD_BE_MASKED=0 QEMU_TIMEOUT="${QEMU_TIMEOUT:-1800}" IMAGE_NAME=dfuzzer @@ -12,6 +11,13 @@ TEST_FORCE_NEWIMAGE=1 # shellcheck source=test/test-functions . "${TEST_BASE_DIR:?}/test-functions" +# Run the test either only under nspawn (if $TEST_PREFER_NSPAWN is set to true) +# or only uder qemu otherwise, to avoid running the test twice on machines where +# we can do both. +if ! get_bool "${TEST_PREFER_NSPAWN:=}"; then + TEST_NO_NSPAWN=1 +fi + command -v dfuzzer >/dev/null || exit 0 if ! get_bool "$IS_BUILT_WITH_ASAN"; then From 53008d0714ab87fe71a7f083eef560a1713a91f4 Mon Sep 17 00:00:00 2001 From: Frantisek Sumsal Date: Sun, 26 Jun 2022 21:00:43 +0200 Subject: [PATCH 3/3] test: drop unnecessary `|| :` since we use `set +e` in the cleanup handler. --- test/units/testsuite-21.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/units/testsuite-21.sh b/test/units/testsuite-21.sh index 7158688362..d931e63167 100755 --- a/test/units/testsuite-21.sh +++ b/test/units/testsuite-21.sh @@ -15,7 +15,7 @@ at_exit() { # from the queue if [[ $SHUTDOWN_AT_EXIT -ne 0 ]] && ! systemctl poweroff; then # PID1 is down let's try to save the journal - journalctl --sync || : # journal can be down as well so let's ignore exit codes here + journalctl --sync # journal can be down as well so let's ignore exit codes here systemctl -ff poweroff # sync() and reboot(RB_POWER_OFF) fi }