]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test-network: add a testcase for UplinkInterface= in [IPv6SendRA] 19944/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 15 Jun 2021 19:50:49 +0000 (04:50 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 4 Aug 2021 13:21:00 +0000 (22:21 +0900)
test/test-network/conf/dhcp-server-with-ipv6-prefix.network
test/test-network/conf/ipv6ra-prefix-client-deny-list.network
test/test-network/conf/ipv6ra-prefix-client.network
test/test-network/conf/ipv6ra-prefix.network
test/test-network/conf/ipv6ra-uplink.network [new file with mode: 0644]
test/test-network/systemd-networkd-tests.py

index 7a1cfc65e19f0d7467cc46dd089ea7bef562d2bd..4c8903513919890526253827e1792a77a488287f 100644 (file)
@@ -13,3 +13,7 @@ Prefix=2002:da8:1:0::/64
 [DHCPServer]
 DNS=192.168.5.1
 NTP=192.168.5.1
+
+[IPv6SendRA]
+EmitDNS=no
+EmitDomains=no
index ce7a76f70c5e114bc509d71833c395fe440c86af..be0d2e40c56580067c4233dd535e605d83bceb6c 100644 (file)
@@ -9,3 +9,4 @@ IPv6AcceptRA=yes
 RouterDenyList=2001::1
 PrefixDenyList=2001:db8:0:2::
 RouteDenyList=2001:db1:fff::
+UseDomains=yes
index 58883658f31d10e1695a75da29fb51ea264aa40b..e18ecaf29054005fb30f63443dbd8fe15064df83 100644 (file)
@@ -11,3 +11,4 @@ PrefixAllowList=2001:db8:0:1:: 2001:db8:0:1::
 PrefixDenyList=2001:db8:0:1:: 2001:db8:0:1::
 RouteAllowList=2001:db0:fff:: 2001:db0:fff::
 RouteDenyList=2001:db0:fff:: 2001:db0:fff::
+UseDomains=yes
index cfb03f50c47b2353ef7536bae512c5978ed7a646..72ad808b7187bcd24a90091abf29b1baab1b9fbc 100644 (file)
@@ -5,6 +5,9 @@ Name=veth99
 DHCP=no
 IPv6SendRA=yes
 
+[IPv6SendRA]
+UplinkInterface=dummy98
+
 [IPv6Prefix]
 Prefix=2001:db8:0:1::/64
 
diff --git a/test/test-network/conf/ipv6ra-uplink.network b/test/test-network/conf/ipv6ra-uplink.network
new file mode 100644 (file)
index 0000000..9146def
--- /dev/null
@@ -0,0 +1,8 @@
+[Match]
+Name=dummy98
+
+[Network]
+IPv6AcceptRA=no
+Address=2001:db8:1:1::1/64
+DNS=2001:db8:1:1::2
+Domains=example.com
index dc31d133c4e99c1489118df1b40de5ee73c58282..11e97e0ade9b8db1dd4c4f3cca2988e4d9d23f33 100755 (executable)
@@ -4685,14 +4685,19 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities):
         self.assertRegex(output, 'inet 192.168.5.[0-9]*/24 metric 1024 brd 192.168.5.255 scope global dynamic veth99')
 
 class NetworkdIPv6PrefixTests(unittest.TestCase, Utilities):
-    links = ['veth99']
+    links = [
+        'dummy98',
+        'veth99',
+    ]
 
     units = [
+        '12-dummy.netdev',
         '25-veth.netdev',
         'ipv6ra-prefix-client-deny-list.network',
         'ipv6ra-prefix-client.network',
-        'ipv6ra-prefix.network'
-        ]
+        'ipv6ra-prefix.network',
+        'ipv6ra-uplink.network',
+    ]
 
     def setUp(self):
         remove_links(self.links)
@@ -4705,10 +4710,11 @@ class NetworkdIPv6PrefixTests(unittest.TestCase, Utilities):
         stop_networkd(show_logs=True)
 
     def test_ipv6_route_prefix(self):
-        copy_unit_to_networkd_unit_path('25-veth.netdev', 'ipv6ra-prefix-client.network', 'ipv6ra-prefix.network')
+        copy_unit_to_networkd_unit_path('25-veth.netdev', 'ipv6ra-prefix-client.network', 'ipv6ra-prefix.network',
+                                        '12-dummy.netdev', 'ipv6ra-uplink.network')
 
         start_networkd()
-        self.wait_online(['veth99:routable', 'veth-peer:routable'])
+        self.wait_online(['veth99:routable', 'veth-peer:routable', 'dummy98:routable'])
 
         output = check_output('ip address show dev veth-peer')
         print(output)
@@ -4727,11 +4733,20 @@ class NetworkdIPv6PrefixTests(unittest.TestCase, Utilities):
         self.assertNotIn('inet6 2001:db8:0:1:', output)
         self.assertIn('inet6 2001:db8:0:2:', output)
 
+        output = check_output(*resolvectl_cmd, 'dns', 'veth-peer', env=env)
+        print(output)
+        self.assertRegex(output, '2001:db8:1:1::2')
+
+        output = check_output(*resolvectl_cmd, 'domain', 'veth-peer', env=env)
+        print(output)
+        self.assertIn('example.com', output)
+
     def test_ipv6_route_prefix_deny_list(self):
-        copy_unit_to_networkd_unit_path('25-veth.netdev', 'ipv6ra-prefix-client-deny-list.network', 'ipv6ra-prefix.network')
+        copy_unit_to_networkd_unit_path('25-veth.netdev', 'ipv6ra-prefix-client-deny-list.network', 'ipv6ra-prefix.network',
+                                        '12-dummy.netdev', 'ipv6ra-uplink.network')
 
         start_networkd()
-        self.wait_online(['veth99:routable', 'veth-peer:routable'])
+        self.wait_online(['veth99:routable', 'veth-peer:routable', 'dummy98:routable'])
 
         output = check_output('ip address show dev veth-peer')
         print(output)
@@ -4750,6 +4765,14 @@ class NetworkdIPv6PrefixTests(unittest.TestCase, Utilities):
         self.assertNotIn('inet6 2001:db8:0:1:', output)
         self.assertIn('inet6 2001:db8:0:2:', output)
 
+        output = check_output(*resolvectl_cmd, 'dns', 'veth-peer', env=env)
+        print(output)
+        self.assertRegex(output, '2001:db8:1:1::2')
+
+        output = check_output(*resolvectl_cmd, 'domain', 'veth-peer', env=env)
+        print(output)
+        self.assertIn('example.com', output)
+
 class NetworkdMTUTests(unittest.TestCase, Utilities):
     links = ['dummy98']