mirror of
https://github.com/systemd/systemd.git
synced 2024-12-26 03:22:00 +03:00
7a321b5a21
Having these named differently than the test itself mostly creates unecessary confusion and makes writing logic against the tests harder so let's rename the testsuite-xx units and scripts to just use the test name itself.
87 lines
2.4 KiB
Bash
Executable File
87 lines
2.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
set -ex
|
|
set -o pipefail
|
|
|
|
# shellcheck source=test/units/util.sh
|
|
. "$(dirname "$0")"/util.sh
|
|
|
|
create_link_file() {
|
|
name=${1?}
|
|
|
|
mkdir -p /run/systemd/network/
|
|
cat >/run/systemd/network/10-test.link <<EOF
|
|
[Match]
|
|
Kind=dummy
|
|
MACAddress=00:50:56:c0:00:18
|
|
|
|
[Link]
|
|
Name=$name
|
|
AlternativeName=test1 test2 test3 test4
|
|
EOF
|
|
udevadm control --reload
|
|
}
|
|
|
|
udevadm control --log-level=debug
|
|
|
|
create_link_file test1
|
|
ip link add address 00:50:56:c0:00:18 type dummy
|
|
udevadm wait --settle --timeout=30 /sys/class/net/test1
|
|
output=$(ip link show dev test1)
|
|
if ! [[ "$output" =~ altname ]]; then
|
|
echo "alternative name for network interface not supported, skipping test."
|
|
exit 0
|
|
fi
|
|
assert_not_in "altname test1" "$output"
|
|
assert_in "altname test2" "$output"
|
|
assert_in "altname test3" "$output"
|
|
assert_in "altname test4" "$output"
|
|
|
|
# By triggering add event, Name= and AlternativeNames= are re-applied
|
|
create_link_file test2
|
|
udevadm trigger --action add --settle /sys/class/net/test1
|
|
udevadm wait --settle --timeout=30 /sys/class/net/test2
|
|
output=$(ip link show dev test2)
|
|
assert_in "altname test1" "$output"
|
|
assert_not_in "altname test2" "$output"
|
|
assert_in "altname test3" "$output"
|
|
assert_in "altname test4" "$output"
|
|
|
|
# Name= and AlternativeNames= are not applied on move event
|
|
create_link_file test3
|
|
udevadm trigger --action move --settle /sys/class/net/test2
|
|
udevadm wait --settle --timeout=30 /sys/class/net/test2
|
|
output=$(ip link show dev test2)
|
|
assert_in "altname test1" "$output"
|
|
assert_not_in "altname test2" "$output"
|
|
assert_in "altname test3" "$output"
|
|
assert_in "altname test4" "$output"
|
|
|
|
# Test move event triggered by manual renaming
|
|
ip link set dev test2 name hoge
|
|
udevadm wait --settle --timeout=30 /sys/class/net/hoge
|
|
output=$(ip link show dev hoge)
|
|
assert_in "altname test1" "$output"
|
|
assert_not_in "altname test2" "$output"
|
|
assert_in "altname test3" "$output"
|
|
assert_in "altname test4" "$output"
|
|
assert_not_in "altname hoge" "$output"
|
|
|
|
# Re-test add event
|
|
udevadm trigger --action add --settle /sys/class/net/hoge
|
|
udevadm wait --settle --timeout=30 /sys/class/net/test3
|
|
output=$(ip link show dev test3)
|
|
assert_in "altname test1" "$output"
|
|
assert_in "altname test2" "$output"
|
|
assert_not_in "altname test3" "$output"
|
|
assert_in "altname test4" "$output"
|
|
assert_not_in "altname hoge" "$output"
|
|
|
|
# cleanup
|
|
ip link del dev test3
|
|
|
|
rm -f /run/systemd/network/10-test.link
|
|
udevadm control --reload --log-level=info
|
|
|
|
exit 0
|