mirror of
https://github.com/Dasharo/systemd.git
synced 2026-03-06 15:02:31 -08:00
test: merge udev tests
This commit is contained in:
@@ -1,9 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
TEST_DESCRIPTION="UDEV SYSTEMD_WANTS property"
|
||||
TEST_NO_NSPAWN=1
|
||||
|
||||
. $TEST_BASE_DIR/test-functions
|
||||
QEMU_TIMEOUT=300
|
||||
|
||||
do_test "$@" 17
|
||||
@@ -1,11 +1,11 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
TEST_DESCRIPTION="UDEV ID_RENAMING property"
|
||||
IMAGE_NAME="udev-id-renaming"
|
||||
TEST_DESCRIPTION="UDEV"
|
||||
IMAGE_NAME="udev"
|
||||
TEST_NO_NSPAWN=1
|
||||
|
||||
. $TEST_BASE_DIR/test-functions
|
||||
QEMU_TIMEOUT=300
|
||||
QEMU_TIMEOUT=500
|
||||
|
||||
test_append_files() {
|
||||
(
|
||||
@@ -14,4 +14,4 @@ test_append_files() {
|
||||
)
|
||||
}
|
||||
|
||||
do_test "$@" 29
|
||||
do_test "$@" 17
|
||||
@@ -24,4 +24,4 @@ test_append_files() {
|
||||
)
|
||||
}
|
||||
|
||||
do_test "$@" 58
|
||||
do_test "$@" 29
|
||||
@@ -4,4 +4,4 @@ set -e
|
||||
TEST_DESCRIPTION="test adding new BindPaths while unit is already running"
|
||||
. $TEST_BASE_DIR/test-functions
|
||||
|
||||
do_test "$@" 57
|
||||
do_test "$@" 49
|
||||
@@ -1,8 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
TEST_DESCRIPTION="test udev's event-timeout and timeout-signal options"
|
||||
TEST_NO_NSPAWN=1
|
||||
. $TEST_BASE_DIR/test-functions
|
||||
|
||||
do_test "$@" 49
|
||||
@@ -45,4 +45,4 @@ check_result_qemu() {
|
||||
return $ret
|
||||
}
|
||||
|
||||
do_test "$@" 56
|
||||
do_test "$@" 55
|
||||
@@ -1,8 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
TEST_DESCRIPTION="UDEV tags management"
|
||||
TEST_NO_NSPAWN=1
|
||||
|
||||
. $TEST_BASE_DIR/test-functions
|
||||
|
||||
do_test "$@" 55
|
||||
@@ -1 +0,0 @@
|
||||
../TEST-01-BASIC/Makefile
|
||||
@@ -1 +0,0 @@
|
||||
../TEST-01-BASIC/Makefile
|
||||
@@ -1 +0,0 @@
|
||||
../TEST-01-BASIC/Makefile
|
||||
72
test/units/testsuite-17.01.sh
Executable file
72
test/units/testsuite-17.01.sh
Executable file
@@ -0,0 +1,72 @@
|
||||
#!/usr/bin/env bash
|
||||
set -ex
|
||||
set -o pipefail
|
||||
|
||||
mkdir -p /run/udev/rules.d/
|
||||
|
||||
rm -f /run/udev/rules.d/50-testsuite.rules
|
||||
udevadm control --reload
|
||||
udevadm trigger /dev/sda
|
||||
|
||||
while : ; do
|
||||
(
|
||||
udevadm info /dev/sda | grep -q -v SYSTEMD_WANTS=foobar.service
|
||||
udevadm info /dev/sda | grep -q -v SYSTEMD_WANTS=waldo.service
|
||||
systemctl show -p WantedBy foobar.service | grep -q -v sda
|
||||
systemctl show -p WantedBy waldo.service | grep -q -v sda
|
||||
) && break
|
||||
|
||||
sleep .5
|
||||
done
|
||||
|
||||
cat > /run/udev/rules.d/50-testsuite.rules <<EOF
|
||||
ACTION!="remove", SUBSYSTEM=="block", KERNEL=="sda", ENV{SYSTEMD_WANTS}="foobar.service"
|
||||
EOF
|
||||
udevadm control --reload
|
||||
udevadm trigger /dev/sda
|
||||
|
||||
while : ; do
|
||||
(
|
||||
udevadm info /dev/sda | grep -q SYSTEMD_WANTS=foobar.service
|
||||
udevadm info /dev/sda | grep -q -v SYSTEMD_WANTS=waldo.service
|
||||
systemctl show -p WantedBy foobar.service | grep -q sda
|
||||
systemctl show -p WantedBy waldo.service | grep -q -v sda
|
||||
) && break
|
||||
|
||||
sleep .5
|
||||
done
|
||||
|
||||
cat > /run/udev/rules.d/50-testsuite.rules <<EOF
|
||||
ACTION!="remove", SUBSYSTEM=="block", KERNEL=="sda", ENV{SYSTEMD_WANTS}="waldo.service"
|
||||
EOF
|
||||
udevadm control --reload
|
||||
udevadm trigger /dev/sda
|
||||
|
||||
while : ; do
|
||||
(
|
||||
udevadm info /dev/sda | grep -q -v SYSTEMD_WANTS=foobar.service
|
||||
udevadm info /dev/sda | grep -q SYSTEMD_WANTS=waldo.service
|
||||
systemctl show -p WantedBy foobar.service | grep -q -v sda
|
||||
systemctl show -p WantedBy waldo.service | grep -q sda
|
||||
) && break
|
||||
|
||||
sleep .5
|
||||
done
|
||||
|
||||
rm /run/udev/rules.d/50-testsuite.rules
|
||||
|
||||
udevadm control --reload
|
||||
udevadm trigger /dev/sda
|
||||
|
||||
while : ; do
|
||||
(
|
||||
udevadm info /dev/sda | grep -q -v SYSTEMD_WANTS=foobar.service
|
||||
udevadm info /dev/sda | grep -q -v SYSTEMD_WANTS=waldo.service
|
||||
systemctl show -p WantedBy foobar.service | grep -q -v sda
|
||||
systemctl show -p WantedBy waldo.service | grep -q -v sda
|
||||
) && break
|
||||
|
||||
sleep .5
|
||||
done
|
||||
|
||||
exit 0
|
||||
57
test/units/testsuite-17.02.sh
Executable file
57
test/units/testsuite-17.02.sh
Executable file
@@ -0,0 +1,57 @@
|
||||
#!/usr/bin/env bash
|
||||
set -ex
|
||||
set -o pipefail
|
||||
|
||||
mkdir -p /run/udev/rules.d/
|
||||
|
||||
cat > /run/udev/rules.d/50-testsuite.rules <<EOF
|
||||
ACTION=="remove", GOTO="lo_end"
|
||||
|
||||
SUBSYSTEM=="net", KERNEL=="lo", TAG+="systemd", ENV{SYSTEMD_ALIAS}+="/sys/subsystem/net/devices/lo"
|
||||
|
||||
ACTION!="change", GOTO="lo_end"
|
||||
|
||||
SUBSYSTEM=="net", KERNEL=="lo", ENV{ID_RENAMING}="1"
|
||||
|
||||
LABEL="lo_end"
|
||||
EOF
|
||||
|
||||
udevadm control --log-priority=debug --reload --timeout=600
|
||||
udevadm trigger --action=add --settle /sys/devices/virtual/net/lo
|
||||
udevadm info /sys/devices/virtual/net/lo
|
||||
sleep 1
|
||||
STATE=$(systemctl show --property=ActiveState --value sys-devices-virtual-net-lo.device)
|
||||
[[ $STATE == "active" ]] || exit 1
|
||||
|
||||
udevadm trigger --action=change --settle /sys/devices/virtual/net/lo
|
||||
udevadm info /sys/devices/virtual/net/lo
|
||||
sleep 1
|
||||
STATE=$(systemctl show --property=ActiveState --value sys-devices-virtual-net-lo.device)
|
||||
[[ $STATE == "inactive" ]] || exit 1
|
||||
|
||||
udevadm trigger --action=move --settle /sys/devices/virtual/net/lo
|
||||
udevadm info /sys/devices/virtual/net/lo
|
||||
sleep 1
|
||||
STATE=$(systemctl show --property=ActiveState --value sys-devices-virtual-net-lo.device)
|
||||
[[ $STATE == "active" ]] || exit 1
|
||||
|
||||
rm -f /run/udev/rules.d/50-testsuite.rules
|
||||
udevadm control --reload --timeout=600
|
||||
|
||||
# test for issue #16967
|
||||
|
||||
ip link add hoge type dummy
|
||||
udevadm info --wait-for-initialization=10s /sys/devices/virtual/net/hoge
|
||||
sleep 1
|
||||
if ! systemctl status sys-devices-virtual-net-hoge.device; then exit 1; fi
|
||||
if ! systemctl status sys-subsystem-net-devices-hoge.device; then exit 1; fi
|
||||
|
||||
ip link set hoge name foobar
|
||||
udevadm info --wait-for-initialization=10s /sys/devices/virtual/net/foobar
|
||||
sleep 1
|
||||
if systemctl status sys-devices-virtual-net-hoge.device; then exit 1; fi
|
||||
if systemctl status sys-subsystem-net-devices-hoge.device; then exit 1; fi
|
||||
if ! systemctl status sys-devices-virtual-net-foobar.device; then exit 1; fi
|
||||
if ! systemctl status sys-subsystem-net-devices-foobar.device; then exit 1; fi
|
||||
|
||||
exit 0
|
||||
45
test/units/testsuite-17.03.sh
Executable file
45
test/units/testsuite-17.03.sh
Executable file
@@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
test_rule="/run/udev/rules.d/49-test.rules"
|
||||
|
||||
setup() {
|
||||
mkdir -p "${test_rule%/*}"
|
||||
cp -f /etc/udev/udev.conf /etc/udev/udev.conf.bckp
|
||||
echo 'KERNEL=="lo", SUBSYSTEM=="net", PROGRAM=="/bin/sleep 60"' > "${test_rule}"
|
||||
echo "event_timeout=30" >> /etc/udev/udev.conf
|
||||
echo "timeout_signal=SIGABRT" >> /etc/udev/udev.conf
|
||||
|
||||
systemctl restart systemd-udevd.service
|
||||
}
|
||||
|
||||
teardown() {
|
||||
set +e
|
||||
|
||||
mv -f /etc/udev/udev.conf.bckp /etc/udev/udev.conf
|
||||
rm -f "$test_rule"
|
||||
systemctl restart systemd-udevd.service
|
||||
}
|
||||
|
||||
run_test() {
|
||||
since="$(date +%T)"
|
||||
|
||||
echo add > /sys/class/net/lo/uevent
|
||||
|
||||
for n in {1..20}; do
|
||||
sleep 5
|
||||
if coredumpctl --since "$since" --no-legend --no-pager | grep /bin/udevadm ; then
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
trap teardown EXIT
|
||||
|
||||
setup
|
||||
run_test
|
||||
|
||||
exit 0
|
||||
64
test/units/testsuite-17.04.sh
Executable file
64
test/units/testsuite-17.04.sh
Executable file
@@ -0,0 +1,64 @@
|
||||
#!/bin/bash
|
||||
set -ex
|
||||
set -o pipefail
|
||||
|
||||
mkdir -p /run/udev/rules.d/
|
||||
|
||||
! test -f /run/udev/tags/added/c1:3 &&
|
||||
! test -f /run/udev/tags/changed/c1:3 &&
|
||||
udevadm info /dev/null | grep -q -v 'E: TAGS=.*:added:.*' &&
|
||||
udevadm info /dev/null | grep -q -v 'E: CURRENT_TAGS=.*:added:.*' &&
|
||||
udevadm info /dev/null | grep -q -v 'E: TAGS=.*:changed:.*' &&
|
||||
udevadm info /dev/null | grep -q -v 'E: CURRENT_TAGS=.*:changed:.*'
|
||||
|
||||
cat > /run/udev/rules.d/50-testsuite.rules <<EOF
|
||||
ACTION=="add", SUBSYSTEM=="mem", KERNEL=="null", TAG+="added"
|
||||
ACTION=="change", SUBSYSTEM=="mem", KERNEL=="null", TAG+="changed"
|
||||
EOF
|
||||
|
||||
udevadm control --reload
|
||||
udevadm trigger -c add /dev/null
|
||||
|
||||
while : ; do
|
||||
test -f /run/udev/tags/added/c1:3 &&
|
||||
! test -f /run/udev/tags/changed/c1:3 &&
|
||||
udevadm info /dev/null | grep -q 'E: TAGS=.*:added:.*' &&
|
||||
udevadm info /dev/null | grep -q 'E: CURRENT_TAGS=.*:added:.*' &&
|
||||
udevadm info /dev/null | grep -q -v 'E: TAGS=.*:changed:.*' &&
|
||||
udevadm info /dev/null | grep -q -v 'E: CURRENT_TAGS=.*:changed:.*' &&
|
||||
break
|
||||
|
||||
sleep .5
|
||||
done
|
||||
|
||||
udevadm control --reload
|
||||
udevadm trigger -c change /dev/null
|
||||
|
||||
while : ; do
|
||||
test -f /run/udev/tags/added/c1:3 &&
|
||||
test -f /run/udev/tags/changed/c1:3 &&
|
||||
udevadm info /dev/null | grep -q 'E: TAGS=.*:added:.*' &&
|
||||
udevadm info /dev/null | grep -q -v 'E: CURRENT_TAGS=.*:added:.*' &&
|
||||
udevadm info /dev/null | grep -q 'E: TAGS=.*:changed:.*' &&
|
||||
udevadm info /dev/null | grep -q 'E: CURRENT_TAGS=.*:changed:.*' &&
|
||||
break
|
||||
|
||||
sleep .5
|
||||
done
|
||||
|
||||
udevadm control --reload
|
||||
udevadm trigger -c add /dev/null
|
||||
|
||||
while : ; do
|
||||
test -f /run/udev/tags/added/c1:3 &&
|
||||
test -f /run/udev/tags/changed/c1:3 &&
|
||||
udevadm info /dev/null | grep -q 'E: TAGS=.*:added:.*' &&
|
||||
udevadm info /dev/null | grep -q 'E: CURRENT_TAGS=.*:added:.*' &&
|
||||
udevadm info /dev/null | grep -q 'E: TAGS=.*:changed:.*' &&
|
||||
udevadm info /dev/null | grep -q -v 'E: CURRENT_TAGS=.*:changed:.*' &&
|
||||
break
|
||||
|
||||
sleep .5
|
||||
done
|
||||
|
||||
exit 0
|
||||
@@ -1,5 +1,5 @@
|
||||
[Unit]
|
||||
Description=TEST-17-UDEV-WANTS
|
||||
Description=TEST-17-UDEV
|
||||
|
||||
[Service]
|
||||
ExecStartPre=rm -f /failed /testok
|
||||
|
||||
@@ -1,74 +1,13 @@
|
||||
#!/usr/bin/env bash
|
||||
set -ex
|
||||
set -o pipefail
|
||||
|
||||
mkdir -p /run/udev/rules.d/
|
||||
set -x
|
||||
set -e
|
||||
|
||||
rm -f /run/udev/rules.d/50-testsuite.rules
|
||||
udevadm control --reload
|
||||
udevadm trigger /dev/sda
|
||||
>/failed
|
||||
|
||||
while : ; do
|
||||
(
|
||||
udevadm info /dev/sda | grep -q -v SYSTEMD_WANTS=foobar.service
|
||||
udevadm info /dev/sda | grep -q -v SYSTEMD_WANTS=waldo.service
|
||||
systemctl show -p WantedBy foobar.service | grep -q -v sda
|
||||
systemctl show -p WantedBy waldo.service | grep -q -v sda
|
||||
) && break
|
||||
|
||||
sleep .5
|
||||
for t in ${0%.sh}.*.sh; do
|
||||
echo "Running $t"; ./$t
|
||||
done
|
||||
|
||||
cat > /run/udev/rules.d/50-testsuite.rules <<EOF
|
||||
ACTION!="remove", SUBSYSTEM=="block", KERNEL=="sda", ENV{SYSTEMD_WANTS}="foobar.service"
|
||||
EOF
|
||||
udevadm control --reload
|
||||
udevadm trigger /dev/sda
|
||||
|
||||
while : ; do
|
||||
(
|
||||
udevadm info /dev/sda | grep -q SYSTEMD_WANTS=foobar.service
|
||||
udevadm info /dev/sda | grep -q -v SYSTEMD_WANTS=waldo.service
|
||||
systemctl show -p WantedBy foobar.service | grep -q sda
|
||||
systemctl show -p WantedBy waldo.service | grep -q -v sda
|
||||
) && break
|
||||
|
||||
sleep .5
|
||||
done
|
||||
|
||||
cat > /run/udev/rules.d/50-testsuite.rules <<EOF
|
||||
ACTION!="remove", SUBSYSTEM=="block", KERNEL=="sda", ENV{SYSTEMD_WANTS}="waldo.service"
|
||||
EOF
|
||||
udevadm control --reload
|
||||
udevadm trigger /dev/sda
|
||||
|
||||
while : ; do
|
||||
(
|
||||
udevadm info /dev/sda | grep -q -v SYSTEMD_WANTS=foobar.service
|
||||
udevadm info /dev/sda | grep -q SYSTEMD_WANTS=waldo.service
|
||||
systemctl show -p WantedBy foobar.service | grep -q -v sda
|
||||
systemctl show -p WantedBy waldo.service | grep -q sda
|
||||
) && break
|
||||
|
||||
sleep .5
|
||||
done
|
||||
|
||||
rm /run/udev/rules.d/50-testsuite.rules
|
||||
|
||||
udevadm control --reload
|
||||
udevadm trigger /dev/sda
|
||||
|
||||
while : ; do
|
||||
(
|
||||
udevadm info /dev/sda | grep -q -v SYSTEMD_WANTS=foobar.service
|
||||
udevadm info /dev/sda | grep -q -v SYSTEMD_WANTS=waldo.service
|
||||
systemctl show -p WantedBy foobar.service | grep -q -v sda
|
||||
systemctl show -p WantedBy waldo.service | grep -q -v sda
|
||||
) && break
|
||||
|
||||
sleep .5
|
||||
done
|
||||
|
||||
echo OK >/testok
|
||||
|
||||
exit 0
|
||||
touch /testok
|
||||
rm /failed
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user