]> git.ipfire.org Git - thirdparty/systemd.git/blob - test/units/testsuite-29.sh
Merge pull request #16968 from yuwata/remove-old-device-on-move-event
[thirdparty/systemd.git] / test / units / testsuite-29.sh
1 #!/usr/bin/env bash
2 set -ex
3 set -o pipefail
4
5 mkdir -p /run/udev/rules.d/
6
7 cat > /run/udev/rules.d/50-testsuite.rules <<EOF
8 ACTION=="remove", GOTO="lo_end"
9
10 SUBSYSTEM=="net", KERNEL=="lo", TAG+="systemd", ENV{SYSTEMD_ALIAS}+="/sys/subsystem/net/devices/lo"
11
12 ACTION!="change", GOTO="lo_end"
13
14 SUBSYSTEM=="net", KERNEL=="lo", ENV{ID_RENAMING}="1"
15
16 LABEL="lo_end"
17 EOF
18
19 udevadm control --log-priority=debug --reload --timeout=600
20 udevadm trigger --action=add --settle /sys/devices/virtual/net/lo
21 udevadm info /sys/devices/virtual/net/lo
22 sleep 1
23 STATE=$(systemctl show --property=ActiveState --value sys-devices-virtual-net-lo.device)
24 [[ $STATE == "active" ]] || exit 1
25
26 udevadm trigger --action=change --settle /sys/devices/virtual/net/lo
27 udevadm info /sys/devices/virtual/net/lo
28 sleep 1
29 STATE=$(systemctl show --property=ActiveState --value sys-devices-virtual-net-lo.device)
30 [[ $STATE == "inactive" ]] || exit 1
31
32 udevadm trigger --action=move --settle /sys/devices/virtual/net/lo
33 udevadm info /sys/devices/virtual/net/lo
34 sleep 1
35 STATE=$(systemctl show --property=ActiveState --value sys-devices-virtual-net-lo.device)
36 [[ $STATE == "active" ]] || exit 1
37
38 rm -f /run/udev/rules.d/50-testsuite.rules
39 udevadm control --reload --timeout=600
40
41 # test for issue #16967
42
43 ip link add hoge type dummy
44 udevadm info --wait-for-initialization=10s /sys/devices/virtual/net/hoge
45 sleep 1
46 if ! systemctl status sys-devices-virtual-net-hoge.device; then exit 1; fi
47 if ! systemctl status sys-subsystem-net-devices-hoge.device; then exit 1; fi
48
49 ip link set hoge name foobar
50 udevadm info --wait-for-initialization=10s /sys/devices/virtual/net/foobar
51 sleep 1
52 if systemctl status sys-devices-virtual-net-hoge.device; then exit 1; fi
53 if systemctl status sys-subsystem-net-devices-hoge.device; then exit 1; fi
54 if ! systemctl status sys-devices-virtual-net-foobar.device; then exit 1; fi
55 if ! systemctl status sys-subsystem-net-devices-foobar.device; then exit 1; fi
56
57 echo OK > /testok
58
59 exit 0