]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test-network: update tests for issue #16784 16986/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 8 Sep 2020 20:09:58 +0000 (05:09 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 10 Sep 2020 09:57:07 +0000 (18:57 +0900)
test/test-network/conf/routing-policy-rule-reconfigure.network [new file with mode: 0644]
test/test-network/systemd-networkd-tests.py

diff --git a/test/test-network/conf/routing-policy-rule-reconfigure.network b/test/test-network/conf/routing-policy-rule-reconfigure.network
new file mode 100644 (file)
index 0000000..ca38b78
--- /dev/null
@@ -0,0 +1,33 @@
+[Match]
+Name=test1
+
+[Network]
+IPv6AcceptRA=no
+
+# fwmark
+[RoutingPolicyRule]
+Table=1011
+Family=ipv4
+Priority=10111
+FirewallMark=1011
+
+# oif
+[RoutingPolicyRule]
+Table=1011
+Family=ipv4
+Priority=10112
+OutgoingInterface=test1
+
+# iif
+[RoutingPolicyRule]
+Table=1011
+Family=ipv4
+Priority=10113
+IncomingInterface=test1
+
+# source
+[RoutingPolicyRule]
+Table=1011
+Family=ipv4
+Priority=10114
+From=192.168.8.254
index 951b2d1edb4b851369b9da31fbb39a825366a544..838850178e8afd694d09ae3d5e05018ba2bd8ea7 100755 (executable)
@@ -1735,9 +1735,11 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities):
         '25-vrf.network',
         '26-link-local-addressing-ipv6.network',
         'routing-policy-rule-dummy98.network',
-        'routing-policy-rule-test1.network']
+        'routing-policy-rule-test1.network',
+        'routing-policy-rule-reconfigure.network',
+    ]
 
-    routing_policy_rule_tables = ['7', '8', '9']
+    routing_policy_rule_tables = ['7', '8', '9', '1011']
     routes = [['blackhole', '202.54.1.2'], ['unreachable', '202.54.1.3'], ['prohibit', '202.54.1.4']]
 
     def setUp(self):
@@ -1970,32 +1972,6 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities):
         self.assertRegex(output, 'iif test1')
         self.assertRegex(output, 'lookup 8')
 
-        output = check_output('ip -6 rule list iif test1 priority 101')
-        print(output)
-        self.assertRegex(output, '101:')
-        self.assertRegex(output, 'from all')
-        self.assertRegex(output, 'iif test1')
-        self.assertRegex(output, 'lookup 9')
-
-        run('ip rule delete iif test1 priority 111')
-
-        output = check_output('ip rule list iif test1 priority 111')
-        print(output)
-        self.assertEqual(output, '')
-
-        run(*networkctl_cmd, 'reconfigure', 'test1', env=env)
-
-        self.wait_online(['test1:degraded'])
-
-        output = check_output('ip rule list iif test1 priority 111')
-        print(output)
-        self.assertRegex(output, '111:')
-        self.assertRegex(output, 'from 192.168.100.18')
-        self.assertRegex(output, r'tos (0x08|throughput)\s')
-        self.assertRegex(output, 'iif test1')
-        self.assertRegex(output, 'oif test1')
-        self.assertRegex(output, 'lookup 7')
-
     def test_routing_policy_rule_issue_11280(self):
         copy_unit_to_networkd_unit_path('routing-policy-rule-test1.network', '11-dummy.netdev',
                                         'routing-policy-rule-dummy98.network', '12-dummy.netdev')
@@ -2016,6 +1992,39 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities):
 
             stop_networkd(remove_state_files=False)
 
+    def test_routing_policy_rule_reconfigure(self):
+        copy_unit_to_networkd_unit_path('routing-policy-rule-reconfigure.network', '11-dummy.netdev')
+        start_networkd()
+        self.wait_online(['test1:degraded'])
+
+        output = check_output('ip rule list table 1011')
+        print(output)
+        self.assertRegex(output, '10111:       from all fwmark 0x3f3 lookup 1011')
+        self.assertRegex(output, '10112:       from all oif test1 lookup 1011')
+        self.assertRegex(output, '10113:       from all iif test1 lookup 1011')
+        self.assertRegex(output, '10114:       from 192.168.8.254 lookup 1011')
+
+        run('ip rule delete priority 10111')
+        run('ip rule delete priority 10112')
+        run('ip rule delete priority 10113')
+        run('ip rule delete priority 10114')
+        run('ip rule delete priority 10115')
+
+        output = check_output('ip rule list table 1011')
+        print(output)
+        self.assertEqual(output, '')
+
+        run(*networkctl_cmd, 'reconfigure', 'test1', env=env)
+
+        self.wait_online(['test1:degraded'])
+
+        output = check_output('ip rule list table 1011')
+        print(output)
+        self.assertRegex(output, '10111:       from all fwmark 0x3f3 lookup 1011')
+        self.assertRegex(output, '10112:       from all oif test1 lookup 1011')
+        self.assertRegex(output, '10113:       from all iif test1 lookup 1011')
+        self.assertRegex(output, '10114:       from 192.168.8.254 lookup 1011')
+
     @expectedFailureIfRoutingPolicyPortRangeIsNotAvailable()
     def test_routing_policy_rule_port_range(self):
         copy_unit_to_networkd_unit_path('25-fibrule-port-range.network', '11-dummy.netdev')