summaryrefslogtreecommitdiffstats
path: root/test/units/testsuite-49.sh
diff options
context:
space:
mode:
Diffstat (limited to 'test/units/testsuite-49.sh')
-rwxr-xr-xtest/units/testsuite-49.sh47
1 files changed, 47 insertions, 0 deletions
diff --git a/test/units/testsuite-49.sh b/test/units/testsuite-49.sh
new file mode 100755
index 0000000..ffa9801
--- /dev/null
+++ b/test/units/testsuite-49.sh
@@ -0,0 +1,47 @@
+#!/usr/bin/env bash
+
+set -ex
+
+test_rule="/run/udev/rules.d/49-test.rules"
+
+setup() {
+ mkdir -p "${test_rule%/*}"
+ cp -f /etc/udev/udev.conf /etc/udev/udev.conf.bckp
+ echo 'KERNEL=="lo", SUBSYSTEM=="net", PROGRAM=="/bin/sleep 60"' > "${test_rule}"
+ echo "event_timeout=30" >> /etc/udev/udev.conf
+ echo "timeout_signal=SIGABRT" >> /etc/udev/udev.conf
+
+ systemctl restart systemd-udevd.service
+}
+
+teardown() {
+ set +e
+
+ mv -f /etc/udev/udev.conf.bckp /etc/udev/udev.conf
+ rm -f "$test_rule"
+ systemctl restart systemd-udevd.service
+}
+
+run_test() {
+ since="$(date +%T)"
+
+ echo add > /sys/class/net/lo/uevent
+
+ for n in {1..20}; do
+ sleep 5
+ if coredumpctl --since "$since" --no-legend --no-pager | grep /bin/udevadm ; then
+ return 0
+ fi
+ done
+
+ return 1
+}
+
+trap teardown EXIT
+
+setup
+run_test
+
+echo OK > /testok
+
+exit 0