]> 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)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 27 May 2025 19:38:56 +0000 (04:38 +0900)
test/test-network/systemd-networkd-tests.py

index 894d43c0c1824fc6be6ed21ec536f1e6ae0f6af9..541280a3d7a7247d32ec5e0088620c41e8251255 100755 (executable)
@@ -5775,6 +5775,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()