]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test-network: add udev related tests for networkctl
authorYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 1 Jun 2019 01:31:09 +0000 (10:31 +0900)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 2 Jul 2019 07:43:21 +0000 (09:43 +0200)
test/test-network/systemd-networkd-tests.py

index 75863c391057e8f6811450a986d146f5a9f3fff2..4e9160181cdd58b32f0ca691e3cf7e93fe04f51b 100755 (executable)
@@ -91,6 +91,23 @@ def expectedFailureIfRoutingPolicyIPProtoIsNotAvailable():
 
     return f
 
+def expectedFailureIfLinkFileFieldIsNotSet():
+    def f(func):
+        support = False
+        rc = call('ip link add name dummy99 type dummy')
+        if rc == 0:
+            ret = run('udevadm info -w10s /sys/class/net/dummy99', stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+            if ret.returncode == 0 and 'E: ID_NET_LINK_FILE=' in ret.stdout.rstrip():
+                support = True
+            call('ip link del dummy99')
+
+        if support:
+            return func
+        else:
+            return unittest.expectedFailure(func)
+
+    return f
+
 def expectedFailureIfEthtoolDoesNotSupportDriver():
     def f(func):
         support = False
@@ -371,6 +388,35 @@ class NetworkctlTests(unittest.TestCase, Utilities):
         output = check_output(*networkctl_cmd, 'status', 'test1', env=env)
         self.assertRegex(output, 'MTU: 1600')
 
+    def test_type(self):
+        copy_unit_to_networkd_unit_path('11-dummy.netdev', '11-dummy.network')
+        start_networkd()
+        wait_online(['test1:degraded'])
+
+        output = check_output(*networkctl_cmd, 'status', 'test1')
+        print(output)
+        self.assertRegex(output, 'Type: ether')
+
+        output = check_output(*networkctl_cmd, 'status', 'lo')
+        print(output)
+        self.assertRegex(output, 'Type: loopback')
+
+    @expectedFailureIfLinkFileFieldIsNotSet()
+    def test_udev_link_file(self):
+        copy_unit_to_networkd_unit_path('11-dummy.netdev', '11-dummy.network')
+        start_networkd()
+        wait_online(['test1:degraded'])
+
+        output = check_output(*networkctl_cmd, 'status', 'test1')
+        print(output)
+        self.assertRegex(output, r'Link File: (?:/usr)/lib/systemd/network/99-default.link')
+        self.assertRegex(output, r'Network File: /run/systemd/network/11-dummy.network')
+
+        output = check_output(*networkctl_cmd, 'status', 'lo')
+        print(output)
+        self.assertRegex(output, r'Link File: (?:/usr)/lib/systemd/network/99-default.link')
+        self.assertRegex(output, r'Network File: n/a')
+
     @expectedFailureIfEthtoolDoesNotSupportDriver()
     def test_udev_driver(self):
         copy_unit_to_networkd_unit_path('11-dummy.netdev', '11-dummy.network',