mirror of
https://github.com/systemd/systemd
synced 2024-09-06 16:56:43 +00:00
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.
This commit is contained in:
parent
e209926778
commit
3611ed7378
1
test/TEST-49-UDEV-EVENT-TIMEOUT/Makefile
Symbolic link
1
test/TEST-49-UDEV-EVENT-TIMEOUT/Makefile
Symbolic link
|
@ -0,0 +1 @@
|
|||
../TEST-01-BASIC/Makefile
|
8
test/TEST-49-UDEV-EVENT-TIMEOUT/test.sh
Executable file
8
test/TEST-49-UDEV-EVENT-TIMEOUT/test.sh
Executable file
|
@ -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
|
6
test/units/testsuite-49.service
Normal file
6
test/units/testsuite-49.service
Normal file
|
@ -0,0 +1,6 @@
|
|||
[Unit]
|
||||
Description=TEST-49-UDEV-EVENT-TIMEOUT
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh
|
||||
Type=oneshot
|
47
test/units/testsuite-49.sh
Executable file
47
test/units/testsuite-49.sh
Executable file
|
@ -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
|
Loading…
Reference in a new issue