From b43669a4b1b0f06732b47f65ac4096176a706dc0 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Mon, 8 Mar 2021 05:21:45 +0900 Subject: [PATCH] test: add a simple test for udev watch --- test/TEST-17-UDEV/test.sh | 2 +- test/units/testsuite-17.06.sh | 75 +++++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+), 1 deletion(-) create mode 100755 test/units/testsuite-17.06.sh diff --git a/test/TEST-17-UDEV/test.sh b/test/TEST-17-UDEV/test.sh index 43119d4c102..446f4a83db5 100755 --- a/test/TEST-17-UDEV/test.sh +++ b/test/TEST-17-UDEV/test.sh @@ -8,7 +8,7 @@ TEST_NO_NSPAWN=1 # shellcheck source=test/test-functions . "${TEST_BASE_DIR:?}/test-functions" -QEMU_TIMEOUT=500 +QEMU_TIMEOUT=800 test_append_files() { ( diff --git a/test/units/testsuite-17.06.sh b/test/units/testsuite-17.06.sh new file mode 100755 index 00000000000..68c1f7b2988 --- /dev/null +++ b/test/units/testsuite-17.06.sh @@ -0,0 +1,75 @@ +#!/bin/bash +set -ex +set -o pipefail + +# tests for udev watch + +function check_validity() { + local f ID_OR_HANDLE + + for f in /run/udev/watch/*; do + ID_OR_HANDLE=$(readlink $f) + test -L /run/udev/watch/${ID_OR_HANDLE} + test $(readlink /run/udev/watch/${ID_OR_HANDLE}) = $(basename $f) + done +} + +function check() { + local i j + + for ((i=0;i<2;i++)); do + systemctl restart systemd-udevd.service + udevadm control --ping + udevadm settle + sleep 1 + check_validity + + for ((j=0;j<2;j++)); do + udevadm trigger -w --action add --subsystem-match=block + udevadm settle + sleep 1 + check_validity + done + + for ((j=0;j<2;j++)); do + udevadm trigger -w --action change --subsystem-match=block + udevadm settle + sleep 1 + check_validity + done + done +} + +mkdir -p /run/udev/rules.d/ + +cat >/run/udev/rules.d/00-debug.rules </run/udev/rules.d/50-testsuite.rules </run/udev/rules.d/50-testsuite.rules <