]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
TEST-17-UDEV: Don't hardcode root device name
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Fri, 1 Nov 2024 20:27:08 +0000 (21:27 +0100)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Sat, 2 Nov 2024 19:43:19 +0000 (20:43 +0100)
There's no guarantee the root device will be /dev/sda, so let's use
bootctl to get the actual path instead of harcoding it.

test/units/TEST-17-UDEV.01.sh
test/units/TEST-17-UDEV.06.sh

index 44f36f59558a5bbf564fff4ed4abe853cdb5732e..41f8c6ae0e7451e033c1e4b1b44a31e5e38ade41 100755 (executable)
@@ -5,52 +5,54 @@ set -o pipefail
 
 mkdir -p /run/udev/rules.d/
 
+ROOTDEV="$(bootctl -RR)"
+
 rm -f /run/udev/rules.d/50-testsuite.rules
 udevadm control --reload
-udevadm trigger --settle /dev/sda
+udevadm trigger --settle "$ROOTDEV"
 
 while : ; do
     (
-        udevadm info /dev/sda | grep -q -v SYSTEMD_WANTS=foobar.service
-        udevadm info /dev/sda | grep -q -v SYSTEMD_WANTS=waldo.service
-        systemctl show -p WantedBy foobar.service | grep -q -v sda
-        systemctl show -p WantedBy waldo.service | grep -q -v sda
+        udevadm info "$ROOTDEV" | grep -q -v SYSTEMD_WANTS=foobar.service
+        udevadm info "$ROOTDEV" | grep -q -v SYSTEMD_WANTS=waldo.service
+        systemctl show -p WantedBy foobar.service | grep -q -v "${ROOTDEV#/dev/}"
+        systemctl show -p WantedBy waldo.service | grep -q -v "${ROOTDEV#/dev/}"
     ) && break
 
     sleep .5
 done
 
 cat >/run/udev/rules.d/50-testsuite.rules <<EOF
-SUBSYSTEM=="block", KERNEL=="sda", OPTIONS="log_level=debug"
-ACTION!="remove", SUBSYSTEM=="block", KERNEL=="sda", ENV{SYSTEMD_WANTS}="foobar.service"
+SUBSYSTEM=="block", KERNEL=="${ROOTDEV#/dev/}", OPTIONS="log_level=debug"
+ACTION!="remove", SUBSYSTEM=="block", KERNEL=="${ROOTDEV#/dev/}", ENV{SYSTEMD_WANTS}="foobar.service"
 EOF
 udevadm control --reload
-udevadm trigger --settle /dev/sda
+udevadm trigger --settle "$ROOTDEV"
 
 while : ; do
     (
-        udevadm info /dev/sda | grep -q SYSTEMD_WANTS=foobar.service
-        udevadm info /dev/sda | grep -q -v SYSTEMD_WANTS=waldo.service
-        systemctl show -p WantedBy foobar.service | grep -q sda
-        systemctl show -p WantedBy waldo.service | grep -q -v sda
+        udevadm info "$ROOTDEV" | grep -q SYSTEMD_WANTS=foobar.service
+        udevadm info "$ROOTDEV" | grep -q -v SYSTEMD_WANTS=waldo.service
+        systemctl show -p WantedBy foobar.service | grep -q "${ROOTDEV#/dev/}"
+        systemctl show -p WantedBy waldo.service | grep -q -v "${ROOTDEV#/dev/}"
     ) && break
 
     sleep .5
 done
 
 cat >/run/udev/rules.d/50-testsuite.rules <<EOF
-SUBSYSTEM=="block", KERNEL=="sda", OPTIONS="log_level=debug"
-ACTION!="remove", SUBSYSTEM=="block", KERNEL=="sda", ENV{SYSTEMD_WANTS}="waldo.service"
+SUBSYSTEM=="block", KERNEL=="${ROOTDEV#/dev/}", OPTIONS="log_level=debug"
+ACTION!="remove", SUBSYSTEM=="block", KERNEL=="${ROOTDEV#/dev/}", ENV{SYSTEMD_WANTS}="waldo.service"
 EOF
 udevadm control --reload
-udevadm trigger --settle /dev/sda
+udevadm trigger --settle "$ROOTDEV"
 
 while : ; do
     (
-        udevadm info /dev/sda | grep -q -v SYSTEMD_WANTS=foobar.service
-        udevadm info /dev/sda | grep -q SYSTEMD_WANTS=waldo.service
-        systemctl show -p WantedBy foobar.service | grep -q -v sda
-        systemctl show -p WantedBy waldo.service | grep -q sda
+        udevadm info "$ROOTDEV" | grep -q -v SYSTEMD_WANTS=foobar.service
+        udevadm info "$ROOTDEV" | grep -q SYSTEMD_WANTS=waldo.service
+        systemctl show -p WantedBy foobar.service | grep -q -v "${ROOTDEV#/dev/}"
+        systemctl show -p WantedBy waldo.service | grep -q "${ROOTDEV#/dev/}"
     ) && break
 
     sleep .5
@@ -59,14 +61,14 @@ done
 rm /run/udev/rules.d/50-testsuite.rules
 
 udevadm control --reload
-udevadm trigger --settle /dev/sda
+udevadm trigger --settle "$ROOTDEV"
 
 while : ; do
     (
-        udevadm info /dev/sda | grep -q -v SYSTEMD_WANTS=foobar.service
-        udevadm info /dev/sda | grep -q -v SYSTEMD_WANTS=waldo.service
-        systemctl show -p WantedBy foobar.service | grep -q -v sda
-        systemctl show -p WantedBy waldo.service | grep -q -v sda
+        udevadm info "$ROOTDEV" | grep -q -v SYSTEMD_WANTS=foobar.service
+        udevadm info "$ROOTDEV" | grep -q -v SYSTEMD_WANTS=waldo.service
+        systemctl show -p WantedBy foobar.service | grep -q -v "${ROOTDEV#/dev/}"
+        systemctl show -p WantedBy waldo.service | grep -q -v "${ROOTDEV#/dev/}"
     ) && break
 
     sleep .5
index 6d8364530377ae3b2bc58396b37f232fb1041288..c9493becbd0938de79cfe2928efffdc0b116cdef 100755 (executable)
@@ -46,8 +46,10 @@ EOF
 
 check
 
-MAJOR=$(udevadm info /dev/sda | grep -e '^E: MAJOR=' | sed -e 's/^E: MAJOR=//')
-MINOR=$(udevadm info /dev/sda | grep -e '^E: MINOR=' | sed -e 's/^E: MINOR=//')
+ROOTDEV="$(bootctl -RR)"
+
+MAJOR="$(udevadm info "$ROOTDEV" | grep -e '^E: MAJOR=' | sed -e 's/^E: MAJOR=//')"
+MINOR="$(udevadm info "$ROOTDEV" | grep -e '^E: MINOR=' | sed -e 's/^E: MINOR=//')"
 test -L "/run/udev/watch/b${MAJOR}:${MINOR}"
 
 cat >/run/udev/rules.d/50-testsuite.rules <<EOF
@@ -56,8 +58,8 @@ EOF
 
 check
 
-MAJOR=$(udevadm info /dev/sda | grep -e '^E: MAJOR=' | sed -e 's/^E: MAJOR=//')
-MINOR=$(udevadm info /dev/sda | grep -e '^E: MINOR=' | sed -e 's/^E: MINOR=//')
+MAJOR="$(udevadm info "$ROOTDEV" | grep -e '^E: MAJOR=' | sed -e 's/^E: MAJOR=//')"
+MINOR="$(udevadm info "$ROOTDEV" | grep -e '^E: MINOR=' | sed -e 's/^E: MINOR=//')"
 test ! -e "/run/udev/watch/b${MAJOR}:${MINOR}"
 
 rm /run/udev/rules.d/00-debug.rules