Merge pull request #23834 from mrc0mmand/dfuzzer-in-a-container

A couple of tweaks to allow running TEST-21-DFUZZER in a container
This commit is contained in:
Evgeny Vereshchagin
2022-06-27 01:55:36 +03:00
committed by GitHub
2 changed files with 25 additions and 5 deletions

View File

@@ -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

View File

@@ -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
}
@@ -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=(