diff options
7 files changed, 96 insertions, 0 deletions
diff --git a/test/test-network/conf/12-dummy-altname.link b/test/test-network/conf/12-dummy-altname.link new file mode 100644 index 0000000000..ff47fec7d4 --- /dev/null +++ b/test/test-network/conf/12-dummy-altname.link @@ -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 index 0000000000..254ec94293 --- /dev/null +++ b/test/test-network/conf/12-dummy-mac.netdev @@ -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 index 0000000000..28d98c8edb --- /dev/null +++ b/test/test-network/conf/12-dummy-match-altname.network @@ -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 index 0000000000..300bad6f9d --- /dev/null +++ b/test/test-network/conf/12-dummy-match-mac-01.network @@ -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 index 0000000000..328469193a --- /dev/null +++ b/test/test-network/conf/12-dummy-match-mac-02.network @@ -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 index 0000000000..bdac469bc3 --- /dev/null +++ b/test/test-network/conf/12-dummy-match-renamed.network @@ -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 diff --git a/test/test-network/systemd-networkd-tests.py b/test/test-network/systemd-networkd-tests.py index 2f7614428c..7059711f1d 100755 --- a/test/test-network/systemd-networkd-tests.py +++ b/test/test-network/systemd-networkd-tests.py @@ -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): |