]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test-network: split out setup_netdevsim()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Sun, 19 May 2024 19:29:55 +0000 (04:29 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 20 May 2024 01:42:01 +0000 (10:42 +0900)
test/test-network/systemd-networkd-tests.py

index 6b1633a9614f0f4d4dc7fdaf205a41ea4bd5f632..ff6f18dd2ebfd7d029c7c69051efb7700d427734 100755 (executable)
@@ -5268,17 +5268,23 @@ class NetworkdSRIOVTests(unittest.TestCase, Utilities):
     def tearDown(self):
         tear_down_common()
 
-    @expectedFailureIfNetdevsimWithSRIOVIsNotAvailable()
-    def test_sriov(self):
-        copy_network_unit('25-default.link', '25-sriov.network')
-
+    def setup_netdevsim(self, id=99, num_ports=1, num_vfs=0):
         call('modprobe netdevsim')
 
+        # Create netdevsim device.
         with open('/sys/bus/netdevsim/new_device', mode='w', encoding='utf-8') as f:
-            f.write('99 1')
+            f.write(f'{id} {num_ports}')
+
+        # Create VF.
+        if num_vfs > 0:
+            with open(f'/sys/bus/netdevsim/devices/netdevsim{id}/sriov_numvfs', mode='w', encoding='utf-8') as f:
+                f.write(f'{num_vfs}')
+
+    @expectedFailureIfNetdevsimWithSRIOVIsNotAvailable()
+    def test_sriov(self):
+        copy_network_unit('25-default.link', '25-sriov.network')
 
-        with open('/sys/bus/netdevsim/devices/netdevsim99/sriov_numvfs', mode='w', encoding='utf-8') as f:
-            f.write('3')
+        self.setup_netdevsim(num_vfs=3)
 
         start_networkd()
         self.wait_online('eni99np1:routable')
@@ -5295,10 +5301,7 @@ class NetworkdSRIOVTests(unittest.TestCase, Utilities):
     def test_sriov_udev(self):
         copy_network_unit('25-sriov.link', '25-sriov-udev.network')
 
-        call('modprobe netdevsim')
-
-        with open('/sys/bus/netdevsim/new_device', mode='w', encoding='utf-8') as f:
-            f.write('99 1')
+        self.setup_netdevsim()
 
         start_networkd()
         self.wait_online('eni99np1:routable')