]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test-network: test for NTP servers by DHCPv6 protocol
authorYu Watanabe <watanabe.yu+github@gmail.com>
Sun, 8 Oct 2023 04:28:32 +0000 (13:28 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Sun, 8 Oct 2023 06:45:35 +0000 (15:45 +0900)
For issue #29148.

test/test-network/conf/25-dhcp-client-ipv6-only.network
test/test-network/systemd-networkd-tests.py

index eb5bd027ff1b9e1479ba535a54db56df0639dacd..017f76f4d589d4d8541eaf7d696e5d80ff8b76fa 100644 (file)
@@ -9,3 +9,7 @@ IPv6Token=::1a:2b:3c:4d
 [Route]
 Gateway=_ipv6ra
 Destination=2001:1234:5:9fff:ff:ff:ff:ff/128
+
+[IPv6AcceptRA]
+# To check DNS and NTP servers are really obtained by DHCPv6
+UseDNS=no
index 9edbeb4ab1ff769458cd553d39209515a09839d8..007a6425dd243bc885fcaf9e24b7e5682c76fd85 100755 (executable)
@@ -534,6 +534,10 @@ def read_link_attr(*args):
     with open(os.path.join('/sys/class/net', *args), encoding='utf-8') as f:
         return f.readline().strip()
 
+def read_manager_state_file():
+    with open('/run/systemd/netif/state', encoding='utf-8') as f:
+        return f.read()
+
 def read_link_state_file(link):
     ifindex = read_link_attr(link, 'ifindex')
     path = os.path.join('/run/systemd/netif/links', ifindex)
@@ -5099,7 +5103,8 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities):
 
         start_networkd()
         self.wait_online(['veth-peer:carrier'])
-        start_dnsmasq()
+        start_dnsmasq('--dhcp-option=option6:dns-server,[2600::ee]',
+                      '--dhcp-option=option6:ntp-server,[2600::ff]')
         self.wait_online(['veth99:routable', 'veth-peer:routable'])
 
         # checking address
@@ -5118,6 +5123,20 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities):
         print(output)
         self.assertRegex(output, 'token :: dev veth99')
 
+        # Check link state file
+        print('## link state file')
+        output = read_link_state_file('veth99')
+        print(output)
+        self.assertIn('DNS=2600::ee', output)
+        self.assertIn('NTP=2600::ff', output)
+
+        # Check manager state file
+        print('## manager state file')
+        output = read_manager_state_file()
+        print(output)
+        self.assertRegex(output, 'DNS=.*2600::ee')
+        self.assertRegex(output, 'NTP=.*2600::ff')
+
         print('## dnsmasq log')
         output = read_dnsmasq_log_file()
         print(output)
@@ -5131,7 +5150,8 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities):
             f.write('\n[DHCPv6]\nRapidCommit=no\n')
 
         stop_dnsmasq()
-        start_dnsmasq()
+        start_dnsmasq('--dhcp-option=option6:dns-server,[2600::ee]',
+                      '--dhcp-option=option6:ntp-server,[2600::ff]')
 
         networkctl_reload()
         self.wait_online(['veth99:routable', 'veth-peer:routable'])
@@ -5147,6 +5167,20 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities):
         print(output)
         self.assertRegex(output, 'via fe80::1034:56ff:fe78:9abd')
 
+        # Check link state file
+        print('## link state file')
+        output = read_link_state_file('veth99')
+        print(output)
+        self.assertIn('DNS=2600::ee', output)
+        self.assertIn('NTP=2600::ff', output)
+
+        # Check manager state file
+        print('## manager state file')
+        output = read_manager_state_file()
+        print(output)
+        self.assertRegex(output, 'DNS=.*2600::ee')
+        self.assertRegex(output, 'NTP=.*2600::ff')
+
         print('## dnsmasq log')
         output = read_dnsmasq_log_file()
         print(output)