mirror of
https://github.com/systemd/systemd.git
synced 2024-12-22 17:35:35 +03:00
ad23ff13de
Since we restart systemd-udevd here a couple of times, we might hit the
rate limit in later tests:
[ 26.028355] testsuite-17.sh[2074]: + udevadm control -e
[ 26.028355] testsuite-17.sh[2074]: + udevadm control -l emerg
[ 26.126160] systemd[1]: systemd-udevd.service: Start request repeated too quickly.
[ 26.126213] systemd[1]: systemd-udevd.service: Failed with result 'start-limit-hit'.
[ 26.140310] systemd[1]: Failed to start systemd-udevd.service.
[ 26.140897] systemd[1]: systemd-udevd-control.socket: Failed with result 'service-start-limit-hit'.
[ 26.141286] systemd[1]: systemd-udevd-kernel.socket: Failed with result 'service-start-limit-hit'.
[ 26.142225] testsuite-17.sh[2074]: + udevadm control -l alert
[ 26.149206] udevadm[2088]: Failed to send request to set log level: No such file or directory
Follow-up to: 6ef512c0bb
70 lines
1.8 KiB
Bash
Executable File
70 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
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() {
|
|
for _ in {1..2}; do
|
|
systemctl restart systemd-udevd.service
|
|
udevadm control --ping
|
|
udevadm settle
|
|
check_validity
|
|
|
|
for _ in {1..2}; do
|
|
udevadm trigger -w --action add --subsystem-match=block
|
|
check_validity
|
|
done
|
|
|
|
for _ in {1..2}; do
|
|
udevadm trigger -w --action change --subsystem-match=block
|
|
check_validity
|
|
done
|
|
done
|
|
}
|
|
|
|
mkdir -p /run/udev/rules.d/
|
|
|
|
cat >/run/udev/rules.d/00-debug.rules <<EOF
|
|
SUBSYSTEM=="block", KERNEL=="sda*", OPTIONS="log_level=debug"
|
|
EOF
|
|
|
|
cat >/run/udev/rules.d/50-testsuite.rules <<EOF
|
|
ACTION=="add", SUBSYSTEM=="block", KERNEL=="sda", OPTIONS:="watch"
|
|
EOF
|
|
|
|
check
|
|
|
|
MAJOR=$(udevadm info /dev/sda | grep -e '^E: MAJOR=' | sed -e 's/^E: MAJOR=//')
|
|
MINOR=$(udevadm info /dev/sda | grep -e '^E: MINOR=' | sed -e 's/^E: MINOR=//')
|
|
test -L "/run/udev/watch/b${MAJOR}:${MINOR}"
|
|
|
|
cat >/run/udev/rules.d/50-testsuite.rules <<EOF
|
|
ACTION=="change", SUBSYSTEM=="block", KERNEL=="sda", OPTIONS:="nowatch"
|
|
EOF
|
|
|
|
check
|
|
|
|
MAJOR=$(udevadm info /dev/sda | grep -e '^E: MAJOR=' | sed -e 's/^E: MAJOR=//')
|
|
MINOR=$(udevadm info /dev/sda | grep -e '^E: MINOR=' | sed -e 's/^E: MINOR=//')
|
|
test ! -e "/run/udev/watch/b${MAJOR}:${MINOR}"
|
|
|
|
rm /run/udev/rules.d/00-debug.rules
|
|
rm /run/udev/rules.d/50-testsuite.rules
|
|
|
|
udevadm control --reload
|
|
systemctl reset-failed systemd-udevd.service
|
|
|
|
exit 0
|