mirror of
https://github.com/systemd/systemd.git
synced 2025-03-06 00:58:29 +03:00
test-network: add test for ManageForeignNextHops=no
This commit is contained in:
parent
e7660b9aff
commit
41231f2697
@ -0,0 +1,3 @@
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
[Network]
|
||||
ManageForeignNextHops=no
|
@ -3842,7 +3842,7 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities):
|
||||
self.assertRegex(output, 'inet 10.1.2.3/16 scope global dummy98')
|
||||
self.assertNotRegex(output, 'inet 10.2.3.4/16 scope global dynamic dummy98')
|
||||
|
||||
def check_nexthop(self):
|
||||
def check_nexthop(self, manage_foreign_nexthops):
|
||||
self.wait_online(['veth99:routable', 'veth-peer:routable', 'dummy98:routable'])
|
||||
|
||||
output = check_output('ip nexthop list dev veth99')
|
||||
@ -3853,11 +3853,16 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities):
|
||||
self.assertIn('id 4 dev veth99', output)
|
||||
self.assertRegex(output, 'id 5 via 192.168.10.1 dev veth99 .*onlink')
|
||||
self.assertIn('id 8 via fe80:0:222:4dff:ff:ff:ff:ff dev veth99', output)
|
||||
self.assertRegex(output, r'id [0-9]* via 192.168.5.2 dev veth99')
|
||||
if manage_foreign_nexthops:
|
||||
self.assertRegex(output, r'id [0-9]* via 192.168.5.2 dev veth99')
|
||||
|
||||
output = check_output('ip nexthop list dev dummy98')
|
||||
print(output)
|
||||
self.assertIn('id 20 via 192.168.20.1 dev dummy98', output)
|
||||
if manage_foreign_nexthops:
|
||||
self.assertNotIn('id 42 via 192.168.20.2 dev dummy98', output)
|
||||
else:
|
||||
self.assertIn('id 42 via 192.168.20.2 dev dummy98', output)
|
||||
|
||||
# kernel manages blackhole nexthops on lo
|
||||
output = check_output('ip nexthop list dev lo')
|
||||
@ -3903,13 +3908,20 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities):
|
||||
output = check_output(*networkctl_cmd, '--json=short', 'status', env=env)
|
||||
check_json(output)
|
||||
|
||||
@expectedFailureIfNexthopIsNotAvailable()
|
||||
def test_nexthop(self):
|
||||
def _test_nexthop(self, manage_foreign_nexthops):
|
||||
if not manage_foreign_nexthops:
|
||||
copy_networkd_conf_dropin('networkd-manage-foreign-nexthops-no.conf')
|
||||
|
||||
check_output('ip link add dummy98 type dummy')
|
||||
check_output('ip link set dummy98 up')
|
||||
check_output('ip address add 192.168.20.20/24 dev dummy98')
|
||||
check_output('ip nexthop add id 42 via 192.168.20.2 dev dummy98')
|
||||
|
||||
copy_network_unit('25-nexthop.network', '25-veth.netdev', '25-veth-peer.network',
|
||||
'12-dummy.netdev', '25-nexthop-dummy.network')
|
||||
start_networkd()
|
||||
|
||||
self.check_nexthop()
|
||||
self.check_nexthop(manage_foreign_nexthops)
|
||||
|
||||
remove_network_unit('25-nexthop.network')
|
||||
copy_network_unit('25-nexthop-nothing.network')
|
||||
@ -3928,7 +3940,7 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities):
|
||||
networkctl_reconfigure('dummy98')
|
||||
networkctl_reload()
|
||||
|
||||
self.check_nexthop()
|
||||
self.check_nexthop(manage_foreign_nexthops)
|
||||
|
||||
remove_link('veth99')
|
||||
time.sleep(2)
|
||||
@ -3937,6 +3949,19 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities):
|
||||
print(output)
|
||||
self.assertEqual(output, '')
|
||||
|
||||
@expectedFailureIfNexthopIsNotAvailable()
|
||||
def test_nexthop(self):
|
||||
first = True
|
||||
for manage_foreign_nexthops in [True, False]:
|
||||
if first:
|
||||
first = False
|
||||
else:
|
||||
self.tearDown()
|
||||
|
||||
print(f'### test_nexthop(manage_foreign_nexthops={manage_foreign_nexthops})')
|
||||
with self.subTest(manage_foreign_nexthops=manage_foreign_nexthops):
|
||||
self._test_nexthop(manage_foreign_nexthops)
|
||||
|
||||
class NetworkdTCTests(unittest.TestCase, Utilities):
|
||||
|
||||
def setUp(self):
|
||||
|
Loading…
x
Reference in New Issue
Block a user