summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2024-09-19 01:43:51 +0200
committerYu Watanabe <watanabe.yu+github@gmail.com>2024-09-19 07:50:10 +0200
commit2bcc2a89f3b52cb98e81c4ec1af82600919e2d7d (patch)
tree2d9b206aeced791d122aa0ca08888d1846ae0b45
parentci: Don't add testuser to wheel and systemd-journal groups (diff)
downloadsystemd-2bcc2a89f3b52cb98e81c4ec1af82600919e2d7d.tar.xz
systemd-2bcc2a89f3b52cb98e81c4ec1af82600919e2d7d.zip
test: create .netdev file at last
Previously, when the test ran on mkosi, then networkd was not masked, and might be already started. In that case, the interface test2 would be created soon after the .netdev file is created, and the .link file would not be applied to the interface. Hence, the later test case for 'networkctl cat @test2:link' would fail. This make networkd always started at the beginning of the test, and .netdev file created after .link file is created. So, .link file is always applied to the interface created by the .netdev file.
-rwxr-xr-xtest/units/TEST-74-AUX-UTILS.networkctl.sh30
1 files changed, 17 insertions, 13 deletions
diff --git a/test/units/TEST-74-AUX-UTILS.networkctl.sh b/test/units/TEST-74-AUX-UTILS.networkctl.sh
index 0576d6c055..3d402a7182 100755
--- a/test/units/TEST-74-AUX-UTILS.networkctl.sh
+++ b/test/units/TEST-74-AUX-UTILS.networkctl.sh
@@ -21,6 +21,9 @@ at_exit() {
trap at_exit EXIT
+systemctl unmask systemd-networkd.service
+systemctl start systemd-networkd.service
+
export NETWORK_NAME="10-networkctl-test-$RANDOM.network"
export NETDEV_NAME="10-networkctl-test-$RANDOM.netdev"
export LINK_NAME="10-networkctl-test-$RANDOM.link"
@@ -75,15 +78,6 @@ cmp "+4" "/etc/systemd/network/${NETWORK_NAME}.d/test.conf"
networkctl cat "$NETWORK_NAME" | grep '^# ' |
cmp - <(printf '%s\n' "# /etc/systemd/network/$NETWORK_NAME" "# /etc/systemd/network/${NETWORK_NAME}.d/test.conf")
-networkctl edit --stdin --runtime "$NETDEV_NAME" <<EOF
-[NetDev]
-Name=test2
-Kind=dummy
-EOF
-
-networkctl cat "$NETDEV_NAME" | grep -v '^# ' |
- cmp - <(printf '%s\n' "[NetDev]" "Name=test2" "Kind=dummy")
-
cat >"/usr/lib/systemd/network/$LINK_NAME" <<EOF
[Match]
OriginalName=test2
@@ -95,13 +89,23 @@ EOF
SYSTEMD_LOG_LEVEL=debug EDITOR='true' script -ec 'networkctl edit "$LINK_NAME"' /dev/null
cmp "/usr/lib/systemd/network/$LINK_NAME" "/etc/systemd/network/$LINK_NAME"
-# Test links
-systemctl unmask systemd-networkd
-systemctl stop systemd-networkd
+# The interface test2 does not exist, hence the below do not work.
(! networkctl cat @test2)
(! networkctl cat @test2:netdev)
+(! networkctl cat @test2:link)
+(! networkctl cat @test2:network)
+
+# create .netdev file at last, otherwise, the .link file will not be applied to the interface.
+networkctl edit --stdin --runtime "$NETDEV_NAME" <<EOF
+[NetDev]
+Name=test2
+Kind=dummy
+EOF
+
+networkctl cat "$NETDEV_NAME" | grep -v '^# ' |
+ cmp - <(printf '%s\n' "[NetDev]" "Name=test2" "Kind=dummy")
-systemctl start systemd-networkd
+# wait for the interface being created and configured.
SYSTEMD_LOG_LEVEL=debug /usr/lib/systemd/systemd-networkd-wait-online -i test2:carrier --timeout 20
networkctl cat @test2:network | cmp - <(networkctl cat "$NETWORK_NAME")