From ea91b45e0ed7eea49724ec732900eac59d32823d Mon Sep 17 00:00:00 2001 From: Frantisek Sumsal Date: Wed, 1 Mar 2023 11:06:42 +0100 Subject: [PATCH 1/2] test: skip the hwdb update related tests w/ sanitizers and w/o accel systemd-hwdb update is an expensive operation by itself, and when running with sanitizers and in a VM without acceleration this cost is exacerbated even further, making the test run for a very long time. For example, in the daily CentOS CI ppc64le job with ASan+UBSan one systemd-hwdb update takes more than 7 minutes; in the regular Arch job with KVM it takes over 2 minutes. Since the hwdb update is also tested in other places (like TEST-01-BASIC and the test-hwdb meson test), let's skip it if we detect we run with sanitizers and with plain QEMU. --- test/units/testsuite-17.10.sh | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/test/units/testsuite-17.10.sh b/test/units/testsuite-17.10.sh index 5262f80bb8..7136ed16f5 100755 --- a/test/units/testsuite-17.10.sh +++ b/test/units/testsuite-17.10.sh @@ -11,10 +11,6 @@ set -o pipefail cleanup_17_10() { set +e - rmmod scsi_debug - rm -f /etc/udev/hwdb.d/99-test.hwdb - systemd-hwdb update - losetup -d "$loopdev" rm -f "$blk" @@ -33,14 +29,6 @@ blk="$(mktemp)" dd if=/dev/null of="$blk" bs=1M count=1 loopdev="$(losetup --show -f "$blk")" -modprobe scsi_debug -scsidev=$(readlink -f /sys/bus/pseudo/drivers/scsi_debug/adapter*/host*/target*/[0-9]*) -cat > /etc/udev/hwdb.d/99-test.hwdb < /etc/udev/hwdb.d/99-test.hwdb < Date: Wed, 1 Mar 2023 11:19:02 +0100 Subject: [PATCH 2/2] test: a couple of format-related tweaks --- test/units/testsuite-17.10.sh | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/test/units/testsuite-17.10.sh b/test/units/testsuite-17.10.sh index 7136ed16f5..e30c98a0b8 100755 --- a/test/units/testsuite-17.10.sh +++ b/test/units/testsuite-17.10.sh @@ -9,14 +9,12 @@ set -o pipefail # Coverage test for udevadm cleanup_17_10() { - set +e + set +e - losetup -d "$loopdev" - rm -f "$blk" + losetup -d "$loopdev" + rm -f "$blk" - ip link delete "$netdev" - - return 0 + ip link delete "$netdev" } # Set up some test devices @@ -39,7 +37,7 @@ udevadm control -l warning udevadm control -l notice udevadm control -l debug udevadm control --log-level info -(! udevadm control -l hello ) +(! udevadm control -l hello) udevadm control -s udevadm control -S udevadm control -R @@ -66,15 +64,15 @@ udevadm info -q property /sys/class/net/$netdev udevadm info -q symlink /sys/class/net/$netdev udevadm info -q name -r /dev/null udevadm info --query symlink --root /sys/class/net/$netdev -(! udevadm info -q hello -r /sys/class/net/$netdev ) +(! udevadm info -q hello -r /sys/class/net/$netdev) udevadm info -a /sys/class/net/$netdev -udevadm info -t > /dev/null +udevadm info -t >/dev/null udevadm info --tree /sys/class/net/$netdev udevadm info -x /sys/class/net/$netdev udevadm info -x -q path /sys/class/net/$netdev udevadm info -P TEST_ /sys/class/net/$netdev udevadm info -d /dev/null -udevadm info -e > /dev/null +udevadm info -e >/dev/null # udevadm info -c udevadm info -w /sys/class/net/$netdev udevadm info --wait-for-initialization=5 /sys/class/net/$netdev @@ -105,11 +103,11 @@ udevadm test -a bind /sys/class/net/$netdev udevadm test -a unbind /sys/class/net/$netdev udevadm test -a help /sys/class/net/$netdev udevadm test --action help -(! udevadm test -a hello /sys/class/net/$netdev ) +(! udevadm test -a hello /sys/class/net/$netdev) udevadm test -N early /sys/class/net/$netdev udevadm test -N late /sys/class/net/$netdev udevadm test --resolve-names never /sys/class/net/$netdev -(! udevadm test -N hello /sys/class/net/$netdev ) +(! udevadm test -N hello /sys/class/net/$netdev) udevadm test -h # udevadm test-builtin path_id "$loopdev" @@ -131,14 +129,14 @@ udevadm test-builtin keyboard /dev/null # udevadm test-builtin kmod /sys/class/net/$netdev udevadm test-builtin uaccess /dev/null # udevadm test-builtin usb_id dev/null -(! udevadm test-builtin hello /sys/class/net/$netdev ) +(! udevadm test-builtin hello /sys/class/net/$netdev) # systemd-hwdb update is extremely slow when combined with sanitizers and run # in a VM without acceleration, so let's just skip the one particular test # if we detect this combination if ! [[ -v ASAN_OPTIONS && "$(systemd-detect-virt -v)" == "qemu" ]]; then modprobe scsi_debug scsidev=$(readlink -f /sys/bus/pseudo/drivers/scsi_debug/adapter*/host*/target*/[0-9]*) - cat > /etc/udev/hwdb.d/99-test.hwdb </etc/udev/hwdb.d/99-test.hwdb <