hwdb: fix screen rotation for EXO Wings 2in1 w1125 (#36283)
[systemd.io.git] / test / units / TEST-17-UDEV.09.sh
blob99931962d5baf1327b089de188a94787f6f46ffd
1 #!/usr/bin/env bash
2 # SPDX-License-Identifier: LGPL-2.1-or-later
3 set -ex
4 set -o pipefail
6 # shellcheck source=test/units/util.sh
7 . "$(dirname "$0")"/util.sh
9 # This is a test for issue #24987.
11 mkdir -p /run/udev/rules.d/
12 cat >/run/udev/rules.d/50-testsuite.rules <<EOF
13 SUBSYSTEM!="mem", GOTO="test-end"
14 KERNEL!="null", GOTO="test-end"
15 ACTION=="remove", GOTO="test-end"
17 # add 100 * 100byte of properties
18 $(for i in {1..100}; do printf 'ENV{XXX%03i}="0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"\n' "$i"; done)
20 LABEL="test-end"
21 EOF
23 udevadm control --reload
25 TMPDIR=$(mktemp -d -p /tmp udev-tests.XXXXXX)
26 SYSTEMD_LOG_LEVEL=debug udevadm monitor --udev --property --subsystem-match=mem >"$TMPDIR"/monitor.txt 2>&1 &
27 KILL_PID="$!"
29 FOUND=
30 for _ in {1..40}; do
31 if grep -F 'UDEV - the event which udev sends out after rule processing' "$TMPDIR"/monitor.txt; then
32 FOUND=1
33 break
35 sleep .5
36 done
37 [[ -n "$FOUND" ]]
39 udevadm trigger --verbose --settle --action add /dev/null
41 FOUND=
42 for _ in {1..40}; do
43 if ! grep -e 'UDEV *\[[0-9.]*\] *add *\/devices\/virtual\/mem\/null (mem)' "$TMPDIR"/monitor.txt; then
44 sleep .5
45 continue
48 FOUND=1
49 for i in {1..100}; do
50 if ! grep -F "$(printf 'XXX%03i=0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789' "$i")" "$TMPDIR"/monitor.txt; then
51 FOUND=
52 break
54 done
55 if [[ -n "$FOUND" ]]; then
56 break;
59 sleep .5
60 done
61 [[ -n "$FOUND" ]]
63 # cleanup
64 rm -f /run/udev/rules.d/50-testsuite.rules
65 udevadm control --reload
67 kill "$KILL_PID"
68 rm -rf "$TMPDIR"
70 exit 0