about summary refs log tree commit diff
path: root/debian/tests
diff options
context:
space:
mode:
Diffstat (limited to 'debian/tests')
-rwxr-xr-xdebian/tests/killswitches-no-urfkill11
1 files changed, 10 insertions, 1 deletions
diff --git a/debian/tests/killswitches-no-urfkill b/debian/tests/killswitches-no-urfkill
index d6ef3a38..f7adc67c 100755
--- a/debian/tests/killswitches-no-urfkill
+++ b/debian/tests/killswitches-no-urfkill
@@ -31,13 +31,18 @@ if ! rfkill list $fake_id | grep 'Soft' | awk '{ print $3; }' | grep -qc yes; th
 	exit 1
 fi
 
+# The systemd-rfkill service starts up whenever rfkill changes state, so on a
+# 1-cpu system that might delay the event change from reaching nm before the
+# check below, causing this test to fail.  The settle added here delays the
+# nmcli check until after the rfkill uevent has definitely been processed.
+udevadm settle
+
 if ! LC_MESSAGES=C nmcli radio wifi | grep -qc disabled; then
 	echo "ERROR: NM could not track device state."
 	rmmod fake-rfkill || true
 	exit 1
 fi
 
-
 # test unblocking the device
 rfkill unblock $fake_id
 if ! rfkill list $fake_id | grep 'Soft' | awk '{ print $3; }' | grep -qc no; then
@@ -46,6 +51,10 @@ if ! rfkill list $fake_id | grep 'Soft' | awk '{ print $3; }' | grep -qc no; the
 	exit 1
 fi
 
+# same reason as above, however since systemd-rfkill stays running for 30 secs or so
+# it's unlikely that it would start up again here, but it's still safer to call settle
+udevadm settle
+
 if ! LC_MESSAGES=C nmcli radio wifi | grep -qc enabled; then
 	echo "ERROR: NM could not track device state to enabled."
 	rmmod fake-rfkill || true