From 5541b1b49462658221cff36a6271714c14b632e4 Mon Sep 17 00:00:00 2001
From: Daan De Meyer <daan.j.demeyer@gmail.com>
Date: Fri, 1 Nov 2024 21:27:08 +0100
Subject: [PATCH 0986/1160] TEST-17-UDEV: Don't hardcode root device name

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.

(cherry picked from commit 29a8e71d9c0858aef502f091a0ef58d5569b1c70)
(cherry picked from commit beca1de2efe7a749bfe9b35a63e6916b3a5966aa)
---
 test/units/testsuite-17.01.sh | 50 ++++++++++++++++++-----------------
 test/units/testsuite-17.06.sh | 10 ++++---
 2 files changed, 32 insertions(+), 28 deletions(-)

diff --git a/test/units/testsuite-17.01.sh b/test/units/testsuite-17.01.sh
index 44f36f5955..41f8c6ae0e 100755
--- a/test/units/testsuite-17.01.sh
+++ b/test/units/testsuite-17.01.sh
@@ -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
diff --git a/test/units/testsuite-17.06.sh b/test/units/testsuite-17.06.sh
index 6d83645303..c9493becbd 100755
--- a/test/units/testsuite-17.06.sh
+++ b/test/units/testsuite-17.06.sh
@@ -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
-- 
2.33.0