hwdb: fix screen rotation for EXO Wings 2in1 w1125 (#36283)
[systemd.io.git] / test / units / TEST-17-UDEV.06.sh
blobc9493becbd0938de79cfe2928efffdc0b116cdef
1 #!/bin/bash
2 # SPDX-License-Identifier: LGPL-2.1-or-later
3 set -ex
4 set -o pipefail
6 # tests for udev watch
8 function check_validity() {
9 local f ID_OR_HANDLE
11 for f in /run/udev/watch/*; do
12 ID_OR_HANDLE="$(readlink "$f")"
13 test -L "/run/udev/watch/${ID_OR_HANDLE}"
14 test "$(readlink "/run/udev/watch/${ID_OR_HANDLE}")" = "$(basename "$f")"
15 done
18 function check() {
19 for _ in {1..2}; do
20 systemctl restart systemd-udevd.service
21 udevadm control --ping
22 udevadm settle
23 check_validity
25 for _ in {1..2}; do
26 udevadm trigger -w --action add --subsystem-match=block
27 check_validity
28 done
30 for _ in {1..2}; do
31 udevadm trigger -w --action change --subsystem-match=block
32 check_validity
33 done
34 done
37 mkdir -p /run/udev/rules.d/
39 cat >/run/udev/rules.d/00-debug.rules <<EOF
40 SUBSYSTEM=="block", KERNEL=="sda*", OPTIONS="log_level=debug"
41 EOF
43 cat >/run/udev/rules.d/50-testsuite.rules <<EOF
44 ACTION=="add", SUBSYSTEM=="block", KERNEL=="sda", OPTIONS:="watch"
45 EOF
47 check
49 ROOTDEV="$(bootctl -RR)"
51 MAJOR="$(udevadm info "$ROOTDEV" | grep -e '^E: MAJOR=' | sed -e 's/^E: MAJOR=//')"
52 MINOR="$(udevadm info "$ROOTDEV" | grep -e '^E: MINOR=' | sed -e 's/^E: MINOR=//')"
53 test -L "/run/udev/watch/b${MAJOR}:${MINOR}"
55 cat >/run/udev/rules.d/50-testsuite.rules <<EOF
56 ACTION=="change", SUBSYSTEM=="block", KERNEL=="sda", OPTIONS:="nowatch"
57 EOF
59 check
61 MAJOR="$(udevadm info "$ROOTDEV" | grep -e '^E: MAJOR=' | sed -e 's/^E: MAJOR=//')"
62 MINOR="$(udevadm info "$ROOTDEV" | grep -e '^E: MINOR=' | sed -e 's/^E: MINOR=//')"
63 test ! -e "/run/udev/watch/b${MAJOR}:${MINOR}"
65 rm /run/udev/rules.d/00-debug.rules
66 rm /run/udev/rules.d/50-testsuite.rules
68 udevadm control --reload
69 systemctl reset-failed systemd-udevd.service
71 exit 0