diff --git a/mkosi.images/system/mkosi.conf.d/10-opensuse/mkosi.conf b/mkosi.images/system/mkosi.conf.d/10-opensuse/mkosi.conf index a1a47783507..95c5c194a42 100644 --- a/mkosi.images/system/mkosi.conf.d/10-opensuse/mkosi.conf +++ b/mkosi.images/system/mkosi.conf.d/10-opensuse/mkosi.conf @@ -43,7 +43,7 @@ Packages= group(root) gzip iputils - kernel-kvmsmall + kernel-default kmod libasan8 libkmod2 diff --git a/mkosi.images/system/mkosi.conf.d/10-ubuntu/mkosi.conf b/mkosi.images/system/mkosi.conf.d/10-ubuntu/mkosi.conf index 957d00e4297..86f9736ed97 100644 --- a/mkosi.images/system/mkosi.conf.d/10-ubuntu/mkosi.conf +++ b/mkosi.images/system/mkosi.conf.d/10-ubuntu/mkosi.conf @@ -5,6 +5,6 @@ Distribution=ubuntu [Content] Packages= - linux-image-virtual + linux-image-generic linux-tools-common linux-tools-virtual diff --git a/test/integration-test-wrapper.py b/test/integration-test-wrapper.py index 4465576c5bc..2d2fba25ebb 100755 --- a/test/integration-test-wrapper.py +++ b/test/integration-test-wrapper.py @@ -102,6 +102,7 @@ def main(): ), '--credential', f"systemd.unit-dropin.{test_unit}={shlex.quote(dropin)}", + '--runtime-network=none', '--append', '--kernel-command-line-extra', ' '.join([ diff --git a/test/meson.build b/test/meson.build index f8e40fa0065..235c68ae29c 100644 --- a/test/meson.build +++ b/test/meson.build @@ -338,9 +338,38 @@ integration_test_wrapper = find_program('integration-test-wrapper.py') integration_tests = { '01': 'TEST-01-BASIC', '02': 'TEST-02-UNITTESTS', + '03': 'TEST-03-JOBS', + '05': 'TEST-05-RLIMITS', + '16': 'TEST-16-EXTEND-TIMEOUT', + '17': 'TEST-17-UDEV', # Can be flaky when overloaded if timeout abort test is slow + '19': 'TEST-19-CGROUP', + '25': 'TEST-25-IMPORT', + '26': 'TEST-26-SYSTEMCTL', '29': 'TEST-29-PORTABLE', + '30': 'TEST-30-ONCLOCKCHANGE', + '32': 'TEST-32-OOMPOLICY', + '34': 'TEST-34-DYNAMICUSERMIGRATE', + '36': 'TEST-36-NUMAPOLICY', + '38': 'TEST-38-FREEZER', '43': 'TEST-43-PRIVATEUSER-UNPRIV', + '44': 'TEST-44-LOG-NAMESPACE', + '45': 'TEST-45-TIMEDATE', '50': 'TEST-50-DISSECT', + # Can be flaky when overloaded if daemon-reload is too slow to be rate-limited + '59': 'TEST-59-RELOADING-RESTART', + '60': 'TEST-60-MOUNT-RATELIMIT', + '62': 'TEST-62-RESTRICT-IFACES', + '63': 'TEST-63-PATH', + '66': 'TEST-66-DEVICE-ISOLATION', + '67': 'TEST-67-INTEGRITY', + '68': 'TEST-68-PROPAGATE-EXIT-STATUS', + '72': 'TEST-72-SYSUPDATE', + '76': 'TEST-76-SYSCTL', + '78': 'TEST-78-SIGQUEUE', + '79': 'TEST-79-MEMPRESS', + '80': 'TEST-80-NOTIFYACCESS', + '81': 'TEST-81-GENERATORS', + '84': 'TEST-84-STORAGETM', } foreach test_number, dirname : integration_tests test_params = { diff --git a/test/units/testsuite-17.credentials.sh b/test/units/testsuite-17.credentials.sh index cbdc57037e1..42d3883c396 100755 --- a/test/units/testsuite-17.credentials.sh +++ b/test/units/testsuite-17.credentials.sh @@ -4,6 +4,11 @@ set -eux set -o pipefail +if [[ $(systemctl is-enabled systemd-udev-load-credentials.service) == not-found ]]; then + echo "Missing systemd-udev-load-credentials.service" >>/skipped + exit 0 +fi + at_exit() { rm -f /run/credstore/udev.* rm -f /run/udev/udev.conf.d/* diff --git a/test/units/testsuite-19.sh b/test/units/testsuite-19.sh index 9c2a033aa98..60c53cd80de 100755 --- a/test/units/testsuite-19.sh +++ b/test/units/testsuite-19.sh @@ -3,6 +3,14 @@ set -eux set -o pipefail +. /etc/os-release +# FIXME: This test fails on opensuse with the following error and others: +# Apr 25 10:24:04 H (cat)[910]: device-mapper: create ioctl on ... failed: Device or resource busy +if [[ "$ID" =~ "opensuse" ]]; then + echo "Skipping due to known unexpected behaviour in OpenSUSE kernels" >>/skipped + exit 77 +fi + # shellcheck source=test/units/test-control.sh . "$(dirname "$0")"/test-control.sh diff --git a/test/units/testsuite-25.sh b/test/units/testsuite-25.sh index b298c506e12..24b02cedcf6 100755 --- a/test/units/testsuite-25.sh +++ b/test/units/testsuite-25.sh @@ -3,6 +3,11 @@ set -eux set -o pipefail +if ! command -v importctl >/dev/null; then + echo "importctl is not available to be chain-loaded from machinectl, skipping" >>/skipped + exit 77 +fi + export SYSTEMD_PAGER=cat dd if=/dev/urandom of=/var/tmp/testimage.raw bs=$((1024*1024+7)) count=5 diff --git a/test/units/testsuite-26.sh b/test/units/testsuite-26.sh index 6734aee654f..27aa98edb78 100755 --- a/test/units/testsuite-26.sh +++ b/test/units/testsuite-26.sh @@ -386,6 +386,10 @@ if [[ -x /usr/lib/systemd/system-generators/systemd-sysv-generator ]]; then # at runtime, so let's just support the two most common paths for now. [[ -d /etc/rc.d/init.d ]] && SYSVINIT_PATH="/etc/rc.d/init.d" || SYSVINIT_PATH="/etc/init.d" + # OpenSUSE leaves sysvinit-path enabled, which means systemd-sysv-generator is built + # but may not create the directory if there's no services that use it. + mkdir -p "$SYSVINIT_PATH" + # invalid dependency cat >"${SYSVINIT_PATH:?}/issue-24990" <<\EOF #!/bin/bash diff --git a/test/units/testsuite-36.sh b/test/units/testsuite-36.sh index 12bf1393e4b..02ca88f80df 100755 --- a/test/units/testsuite-36.sh +++ b/test/units/testsuite-36.sh @@ -29,7 +29,7 @@ testUnitFile="/run/systemd/system/$testUnit" testUnitNUMAConf="$testUnitFile.d/numa.conf" # Sleep constants (we should probably figure out something better but nothing comes to mind) -sleepAfterStart=1 +sleepAfterStart=3 # Journal cursor for easier navigation journalCursorFile="jounalCursorFile" diff --git a/test/units/testsuite-81.fstab-generator.sh b/test/units/testsuite-81.fstab-generator.sh index 4a69245ed87..e50419a0ecc 100755 --- a/test/units/testsuite-81.fstab-generator.sh +++ b/test/units/testsuite-81.fstab-generator.sh @@ -13,6 +13,7 @@ OUT_DIR="$(mktemp -d /tmp/fstab-generator.XXX)" FSTAB="$(mktemp)" at_exit() { + mountpoint -q /proc/cmdline && umount /proc/cmdline rm -fr "${OUT_DIR:?}" "${FSTAB:?}" } @@ -294,6 +295,12 @@ check_fstab_mount_units() { done } +# Drop usrhash on the command-line so fstab-generator doesn't add a /dev/mapper +# mount for /usr, add a root= to emulate a more typical environment, +# and remove any systemd.mount-extra= +sed -r -e 's/usrhash=[^[:space:]+]/root=\/dev\/sda2/' -e 's/systemd.mount-extra=[^[:space:]+]//g' /proc/cmdline >/tmp/cmdline.tmp +mount --bind /tmp/cmdline.tmp /proc/cmdline + : "fstab-generator: regular" printf "%s\n" "${FSTAB_GENERAL_ROOT[@]}" >"$FSTAB" cat "$FSTAB"