diff options
author | Michal Sekletár <msekleta@redhat.com> | 2020-04-30 23:22:08 +0200 |
---|---|---|
committer | Michal Sekletár <msekleta@redhat.com> | 2020-06-05 11:09:21 +0200 |
commit | 3611ed73780b87e11ae00fb410750f2193ca4a42 (patch) | |
tree | fc0e108ed7e4e494178d9373a40ecb19cb62d950 /test | |
parent | e209926778267cbd3e09ed8137bf45b7f370aed0 (diff) | |
download | systemd-3611ed73780b87e11ae00fb410750f2193ca4a42.tar.gz |
test: add integration test for udev event timeout
Note that run_test() calls coredumpctl in a loop because in certain
environments (1 vCPU unaccelerated QEMU VM) it might take quite a
while to process the coredump.
Diffstat (limited to 'test')
l--------- | test/TEST-49-UDEV-EVENT-TIMEOUT/Makefile | 1 | ||||
-rwxr-xr-x | test/TEST-49-UDEV-EVENT-TIMEOUT/test.sh | 8 | ||||
-rw-r--r-- | test/units/testsuite-49.service | 6 | ||||
-rwxr-xr-x | test/units/testsuite-49.sh | 47 |
4 files changed, 62 insertions, 0 deletions
diff --git a/test/TEST-49-UDEV-EVENT-TIMEOUT/Makefile b/test/TEST-49-UDEV-EVENT-TIMEOUT/Makefile new file mode 120000 index 0000000000..e9f93b1104 --- /dev/null +++ b/test/TEST-49-UDEV-EVENT-TIMEOUT/Makefile @@ -0,0 +1 @@ +../TEST-01-BASIC/Makefile
\ No newline at end of file diff --git a/test/TEST-49-UDEV-EVENT-TIMEOUT/test.sh b/test/TEST-49-UDEV-EVENT-TIMEOUT/test.sh new file mode 100755 index 0000000000..249d8a22ae --- /dev/null +++ b/test/TEST-49-UDEV-EVENT-TIMEOUT/test.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +set -e + +TEST_DESCRIPTION="test udev's event-timeout and timeout-signal options" +TEST_NO_NSPAWN=1 +. $TEST_BASE_DIR/test-functions + +do_test "$@" 49 diff --git a/test/units/testsuite-49.service b/test/units/testsuite-49.service new file mode 100644 index 0000000000..f47177106f --- /dev/null +++ b/test/units/testsuite-49.service @@ -0,0 +1,6 @@ +[Unit] +Description=TEST-49-UDEV-EVENT-TIMEOUT + +[Service] +ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh +Type=oneshot diff --git a/test/units/testsuite-49.sh b/test/units/testsuite-49.sh new file mode 100755 index 0000000000..ffa9801644 --- /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 |