hwdb: fix screen rotation for EXO Wings 2in1 w1125 (#36283)
[systemd.io.git] / test / units / TEST-17-UDEV.13.sh
blobd9dfdd7c222b257cab40fd872a20c2e47a7bfb60
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 # Test for `udevadm control -p`
11 test_not_property() {
12 assert_eq "$(udevadm info --query property --property "$2" --value "$1")" ""
15 test_property() {
16 assert_eq "$(udevadm info --query property --property "$2" --value "$1")" "$3"
19 # shellcheck disable=SC2317
20 cleanup() {
21 set +e
23 udevadm control -p FOO= -p BAR=
25 rm -f "$rules"
28 # Set up a test device
29 trap cleanup EXIT
31 rules="/run/udev/rules.d/99-test-17.13.rules"
33 mkdir -p "${rules%/*}"
34 cat > "$rules" <<'EOF'
35 ENV{FOO}=="?*", ENV{PROP_FOO}="$env{FOO}"
36 ENV{BAR}=="?*", ENV{PROP_BAR}="$env{BAR}"
37 EOF
39 udevadm control --reload
41 test_not_property /dev/null PROP_FOO
42 test_not_property /dev/null PROP_BAR
44 : Setting of a property works
46 udevadm control --property FOO=foo
47 udevadm trigger --action change --settle /dev/null
48 test_property /dev/null PROP_FOO foo
49 test_not_property /dev/null PROP_BAR
51 : Change of a property works
53 udevadm control --property FOO=goo
54 udevadm trigger --action change --settle /dev/null
55 test_property /dev/null PROP_FOO goo
57 : Removal of a property works
59 udevadm control --property FOO=
60 udevadm trigger --action change --settle /dev/null
61 test_not_property /dev/null PROP_FOO
63 : Repeated removal of a property does nothing
65 udevadm control --property FOO=
66 udevadm trigger --action change --settle /dev/null
67 test_not_property /dev/null PROP_FOO
69 : Multiple properties can be set at once
71 udevadm control --property FOO=foo --property BAR=bar
72 udevadm trigger --action change --settle /dev/null
73 test_property /dev/null PROP_FOO foo
74 test_property /dev/null PROP_BAR bar
76 : Multiple setting of the same property is handled correctly
78 udevadm control --property FOO=foo --property FOO=42
79 udevadm trigger --action change --settle /dev/null
80 test_property /dev/null PROP_FOO 42
82 : Mix of settings and removals of the same property is handled correctly
84 udevadm control -p FOO= -p FOO=foo -p BAR=car -p BAR=
85 udevadm trigger --action change --settle /dev/null
86 test_property /dev/null PROP_FOO foo
87 test_not_property /dev/null PROP_BAR
89 exit 0