]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test-network: add testcase for reconfiguring interface 25143/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 27 Oct 2022 21:25:56 +0000 (06:25 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 31 Oct 2022 00:35:05 +0000 (09:35 +0900)
test/test-network/conf/12-dummy-altname.link [new file with mode: 0644]
test/test-network/conf/12-dummy-mac.netdev [new file with mode: 0644]
test/test-network/conf/12-dummy-match-altname.network [new file with mode: 0644]
test/test-network/conf/12-dummy-match-mac-01.network [new file with mode: 0644]
test/test-network/conf/12-dummy-match-mac-02.network [new file with mode: 0644]
test/test-network/conf/12-dummy-match-renamed.network [new file with mode: 0644]
test/test-network/systemd-networkd-tests.py

diff --git a/test/test-network/conf/12-dummy-altname.link b/test/test-network/conf/12-dummy-altname.link
new file mode 100644 (file)
index 0000000..ff47fec
--- /dev/null
@@ -0,0 +1,7 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+[Match]
+OriginalName=dummy98-2
+Driver=dummy
+
+[Link]
+AlternativeName=dummy98-2-altname
diff --git a/test/test-network/conf/12-dummy-mac.netdev b/test/test-network/conf/12-dummy-mac.netdev
new file mode 100644 (file)
index 0000000..254ec94
--- /dev/null
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+[NetDev]
+Name=dummy98
+Kind=dummy
+MACAddress=12:34:56:78:9a:01
diff --git a/test/test-network/conf/12-dummy-match-altname.network b/test/test-network/conf/12-dummy-match-altname.network
new file mode 100644 (file)
index 0000000..28d98c8
--- /dev/null
@@ -0,0 +1,9 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+[Match]
+Name=dummy98-2-altname
+Driver=dummy
+MACAddress=12:34:56:78:9a:02
+
+[Network]
+IPv6AcceptRA=no
+Address=10.0.2.2/16
diff --git a/test/test-network/conf/12-dummy-match-mac-01.network b/test/test-network/conf/12-dummy-match-mac-01.network
new file mode 100644 (file)
index 0000000..300bad6
--- /dev/null
@@ -0,0 +1,9 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+[Match]
+Name=dummy98
+Driver=dummy
+MACAddress=12:34:56:78:9a:01
+
+[Network]
+IPv6AcceptRA=no
+Address=10.0.0.1/16
diff --git a/test/test-network/conf/12-dummy-match-mac-02.network b/test/test-network/conf/12-dummy-match-mac-02.network
new file mode 100644 (file)
index 0000000..3284691
--- /dev/null
@@ -0,0 +1,9 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+[Match]
+Name=dummy98
+Driver=dummy
+MACAddress=12:34:56:78:9a:02
+
+[Network]
+IPv6AcceptRA=no
+Address=10.0.0.2/16
diff --git a/test/test-network/conf/12-dummy-match-renamed.network b/test/test-network/conf/12-dummy-match-renamed.network
new file mode 100644 (file)
index 0000000..bdac469
--- /dev/null
@@ -0,0 +1,9 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+[Match]
+Name=dummy98-1
+Driver=dummy
+MACAddress=12:34:56:78:9a:02
+
+[Network]
+IPv6AcceptRA=no
+Address=10.0.1.2/16
index 2f7614428cc67635559cf5015a0bc6428db4f71b..7059711f1dbeaa28cb1e22d8770f3977af2a6259 100755 (executable)
@@ -1062,6 +1062,54 @@ class NetworkctlTests(unittest.TestCase, Utilities):
         self.check_link_exists('veth99', expected=False)
         self.check_link_exists('veth-peer', expected=False)
 
+class NetworkdMatchTests(unittest.TestCase, Utilities):
+
+    def setUp(self):
+        setup_common()
+
+    def tearDown(self):
+        tear_down_common()
+
+    def test_match(self):
+        copy_network_unit('12-dummy-mac.netdev',
+                          '12-dummy-match-mac-01.network',
+                          '12-dummy-match-mac-02.network',
+                          '12-dummy-match-renamed.network',
+                          '12-dummy-match-altname.network',
+                          '12-dummy-altname.link')
+        start_networkd()
+
+        self.wait_online(['dummy98:routable'])
+        output = check_output(*networkctl_cmd, '-n', '0', 'status', 'dummy98', env=env)
+        self.assertIn('Network File: /run/systemd/network/12-dummy-match-mac-01.network', output)
+        output = check_output('ip -4 address show dev dummy98')
+        self.assertIn('10.0.0.1/16', output)
+
+        check_output('ip link set dev dummy98 down')
+        check_output('ip link set dev dummy98 address 12:34:56:78:9a:02')
+
+        self.wait_address('dummy98', '10.0.0.2/16', ipv='-4', timeout_sec=10)
+        self.wait_online(['dummy98:routable'])
+        output = check_output(*networkctl_cmd, '-n', '0', 'status', 'dummy98', env=env)
+        self.assertIn('Network File: /run/systemd/network/12-dummy-match-mac-02.network', output)
+
+        check_output('ip link set dev dummy98 down')
+        check_output('ip link set dev dummy98 name dummy98-1')
+
+        self.wait_address('dummy98-1', '10.0.1.2/16', ipv='-4', timeout_sec=10)
+        self.wait_online(['dummy98-1:routable'])
+        output = check_output(*networkctl_cmd, '-n', '0', 'status', 'dummy98-1', env=env)
+        self.assertIn('Network File: /run/systemd/network/12-dummy-match-renamed.network', output)
+
+        check_output('ip link set dev dummy98-1 down')
+        check_output('ip link set dev dummy98-1 name dummy98-2')
+        check_output(*udevadm_cmd, 'trigger', '--action=add', '/sys/class/net/dummy98-2')
+
+        self.wait_address('dummy98-2', '10.0.2.2/16', ipv='-4', timeout_sec=10)
+        self.wait_online(['dummy98-2:routable'])
+        output = check_output(*networkctl_cmd, '-n', '0', 'status', 'dummy98-2', env=env)
+        self.assertIn('Network File: /run/systemd/network/12-dummy-match-altname.network', output)
+
 class NetworkdNetDevTests(unittest.TestCase, Utilities):
 
     def setUp(self):