]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test-network: add test case for issue #37629
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 27 May 2025 14:31:48 +0000 (23:31 +0900)
committerLuca Boccassi <luca.boccassi@gmail.com>
Wed, 25 Jun 2025 17:17:42 +0000 (18:17 +0100)
(cherry picked from commit b1bed07d84d76f3ab2f11a42fefce2685dbbe685)
(cherry picked from commit a11a8221019a3c364e783052e18dcf438fa3dace)

test/test-network/systemd-networkd-tests.py

index 2ddfeba66193c9bd3a78e9ef52c852dcb6810ebe..b6262a6f556ba509a7626e5fa100523d44fce26b 100755 (executable)
@@ -4913,6 +4913,21 @@ class NetworkdBondTests(unittest.TestCase, Utilities):
         print(output)
         self.assertRegex(output, 'master bond199')
 
+        # Test case for #37629
+        for _ in range(3):
+            # When a slave leaved from its master bonding interface, the kernel brings down the slave.
+            check_output('ip link set dummy98 nomaster')
+            self.wait_online('dummy98:off')
+
+            # Bring up the interface to check if networkd recognizes the interface has no master now.
+            check_output('ip link set dummy98 up')
+            self.wait_online('dummy98:carrier')
+
+            # We need to first bring down the interface to make it join a bonding interface.
+            check_output('ip link set dummy98 down')
+            check_output('ip link set dummy98 master bond199')
+            self.wait_online('dummy98:enslaved')
+
     def test_bond_active_slave(self):
         copy_network_unit('23-active-slave.network', '23-bond199.network', '25-bond-active-backup-slave.netdev', '12-dummy.netdev')
         start_networkd()