]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test-network: wait for the interface being processed by udevd 31587/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 2 Mar 2024 05:48:33 +0000 (14:48 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 2 Mar 2024 05:50:40 +0000 (14:50 +0900)
Otherwise, even if the interface is available, the requested config may
not be applied to the interface yet.

This also merges multiple tests for RPS setting. Hopefully the
performance of the test is improved.

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

index 51a92cb965eb64d57152b49b6f19c0db693d4fd2..3825490d5f1d7fb931c847706dec23e972a06351 100755 (executable)
@@ -2466,22 +2466,12 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities):
 
         self.wait_online('ifb99:degraded')
 
-    def test_rps_cpu_0(self):
-        copy_network_unit('12-dummy.netdev', '25-rps-cpu-0.link')
-        start_networkd()
-
-        self.wait_links('dummy98')
-
-        output = check_output('cat /sys/class/net/dummy98/queues/rx-0/rps_cpus')
-        print(output)
-        self.assertEqual(int(output.replace(',', ''), base=16), 1)
-
     @unittest.skipUnless(os.cpu_count() >= 2, reason="CPU count should be >= 2 to pass this test")
     def test_rps_cpu_1(self):
-        copy_network_unit('12-dummy.netdev', '25-rps-cpu-1.link')
+        copy_network_unit('12-dummy.netdev', '12-dummy.network', '25-rps-cpu-1.link')
         start_networkd()
 
-        self.wait_links('dummy98')
+        self.wait_online('dummy98:carrier')
 
         output = check_output('cat /sys/class/net/dummy98/queues/rx-0/rps_cpus')
         print(output)
@@ -2489,10 +2479,10 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities):
 
     @unittest.skipUnless(os.cpu_count() >= 2, reason="CPU count should be >= 2 to pass this test")
     def test_rps_cpu_0_1(self):
-        copy_network_unit('12-dummy.netdev', '25-rps-cpu-0-1.link')
+        copy_network_unit('12-dummy.netdev', '12-dummy.network', '25-rps-cpu-0-1.link')
         start_networkd()
 
-        self.wait_links('dummy98')
+        self.wait_online('dummy98:carrier')
 
         output = check_output('cat /sys/class/net/dummy98/queues/rx-0/rps_cpus')
         print(output)
@@ -2500,96 +2490,86 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities):
 
     @unittest.skipUnless(os.cpu_count() >= 4, reason="CPU count should be >= 4 to pass this test")
     def test_rps_cpu_multi(self):
-        copy_network_unit('12-dummy.netdev', '25-rps-cpu-multi.link')
+        copy_network_unit('12-dummy.netdev', '12-dummy.network', '25-rps-cpu-multi.link')
         start_networkd()
 
-        self.wait_links('dummy98')
+        self.wait_online('dummy98:carrier')
 
         output = check_output('cat /sys/class/net/dummy98/queues/rx-0/rps_cpus')
         print(output)
         self.assertEqual(int(output.replace(',', ''), base=16), 15)
 
-    def test_rps_cpu_all(self):
+    def test_rps_cpu(self):
         cpu_count = os.cpu_count()
 
-        copy_network_unit('12-dummy.netdev', '25-rps-cpu-all.link')
+        copy_network_unit('12-dummy.netdev', '12-dummy.network')
         start_networkd()
 
-        self.wait_links('dummy98')
+        self.wait_online('dummy98:carrier')
 
+        # 0
+        copy_network_unit('25-rps-cpu-0.link')
+        udevadm_trigger('/sys/class/net/dummy98')
         output = check_output('cat /sys/class/net/dummy98/queues/rx-0/rps_cpus')
         print(output)
-        self.assertEqual(f"{int(output.replace(',', ''), base=16):x}", f'{(1 << cpu_count) - 1:x}')
-
-    def test_rps_cpu_disable(self):
-        copy_network_unit('12-dummy.netdev', '25-rps-cpu-all.link', '24-rps-cpu-disable.link')
-        start_networkd()
-
-        self.wait_links('dummy98')
+        self.assertEqual(int(output.replace(',', ''), base=16), 1)
+        remove_network_unit('25-rps-cpu-0.link')
 
+        # all
+        copy_network_unit('25-rps-cpu-all.link')
+        udevadm_trigger('/sys/class/net/dummy98')
         output = check_output('cat /sys/class/net/dummy98/queues/rx-0/rps_cpus')
         print(output)
-        self.assertEqual(int(output.replace(',', ''), base=16), 0)
-
-    def test_rps_cpu_empty(self):
-        copy_network_unit('12-dummy.netdev', '24-rps-cpu-empty.link')
-        start_networkd()
-
-        self.wait_links('dummy98')
+        self.assertEqual(f"{int(output.replace(',', ''), base=16):x}", f'{(1 << cpu_count) - 1:x}')
+        remove_network_unit('25-rps-cpu-all.link')
 
+        # disable
+        copy_network_unit('24-rps-cpu-disable.link')
+        udevadm_trigger('/sys/class/net/dummy98')
         output = check_output('cat /sys/class/net/dummy98/queues/rx-0/rps_cpus')
         print(output)
         self.assertEqual(int(output.replace(',', ''), base=16), 0)
+        remove_network_unit('24-rps-cpu-disable.link')
 
-    def test_rps_cpu_0_empty(self):
-        copy_network_unit('12-dummy.netdev', '25-rps-cpu-0-empty.link')
-        start_networkd()
-
-        self.wait_links('dummy98')
-
+        # set all again
+        copy_network_unit('25-rps-cpu-all.link')
+        udevadm_trigger('/sys/class/net/dummy98')
         output = check_output('cat /sys/class/net/dummy98/queues/rx-0/rps_cpus')
         print(output)
-        self.assertEqual(int(output.replace(',', ''), base=16), 0)
-
-    def test_rps_cpu_0_and_empty(self):
-        copy_network_unit('12-dummy.netdev', '25-rps-cpu-0.link', '24-rps-cpu-empty.link')
-        start_networkd()
-
-        self.wait_links('dummy98')
+        self.assertEqual(f"{int(output.replace(',', ''), base=16):x}", f'{(1 << cpu_count) - 1:x}')
+        remove_network_unit('25-rps-cpu-all.link')
 
+        # empty -> unchanged
+        copy_network_unit('24-rps-cpu-empty.link')
+        udevadm_trigger('/sys/class/net/dummy98')
         output = check_output('cat /sys/class/net/dummy98/queues/rx-0/rps_cpus')
         print(output)
-        self.assertEqual(int(output.replace(',', ''), base=16), 0)
-
-    def test_rps_cpu_invalid(self):
-        copy_network_unit('12-dummy.netdev', '24-rps-cpu-invalid.link')
-        start_networkd()
-
-        self.wait_links('dummy98')
+        self.assertEqual(f"{int(output.replace(',', ''), base=16):x}", f'{(1 << cpu_count) - 1:x}')
+        remove_network_unit('24-rps-cpu-empty.link')
 
+        # 0, then empty -> unchanged
+        copy_network_unit('25-rps-cpu-0-empty.link')
+        udevadm_trigger('/sys/class/net/dummy98')
         output = check_output('cat /sys/class/net/dummy98/queues/rx-0/rps_cpus')
         print(output)
-        self.assertEqual(int(output.replace(',', ''), base=16), 0)
-
-    def test_rps_cpu_0_invalid(self):
-        copy_network_unit('12-dummy.netdev', '25-rps-cpu-0-invalid.link')
-        start_networkd()
-
-        self.wait_links('dummy98')
+        self.assertEqual(f"{int(output.replace(',', ''), base=16):x}", f'{(1 << cpu_count) - 1:x}')
+        remove_network_unit('25-rps-cpu-0-empty.link')
 
+        # 0, then invalid -> 0
+        copy_network_unit('25-rps-cpu-0-invalid.link')
+        udevadm_trigger('/sys/class/net/dummy98')
         output = check_output('cat /sys/class/net/dummy98/queues/rx-0/rps_cpus')
         print(output)
         self.assertEqual(int(output.replace(',', ''), base=16), 1)
+        remove_network_unit('25-rps-cpu-0-invalid.link')
 
-    def test_rps_cpu_0_and_invalid(self):
-        copy_network_unit('12-dummy.netdev', '25-rps-cpu-0.link', '24-rps-cpu-invalid.link')
-        start_networkd()
-
-        self.wait_links('dummy98')
-
+        # invalid -> unchanged
+        copy_network_unit('24-rps-cpu-invalid.link')
+        udevadm_trigger('/sys/class/net/dummy98')
         output = check_output('cat /sys/class/net/dummy98/queues/rx-0/rps_cpus')
         print(output)
-        self.assertEqual(int(output.replace(',', ''), base=16), 0)
+        self.assertEqual(int(output.replace(',', ''), base=16), 1)
+        remove_network_unit('24-rps-cpu-invalid.link')
 
 class NetworkdL2TPTests(unittest.TestCase, Utilities):