test-network: add test cases for PersistLeases=no

This commit is contained in:
Yu Watanabe 2024-03-28 11:07:35 +09:00
parent 38b4ecf789
commit bc91875ae5
2 changed files with 33 additions and 5 deletions

View file

@ -0,0 +1,3 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
[DHCPServer]
PersistLeases=no

View file

@ -5721,11 +5721,7 @@ class NetworkdDHCPServerTests(unittest.TestCase, Utilities):
def tearDown(self):
tear_down_common()
def test_dhcp_server(self):
copy_network_unit('25-veth.netdev', '25-dhcp-client.network', '25-dhcp-server.network')
start_networkd()
self.wait_online('veth99:routable', 'veth-peer:routable')
def check_dhcp_server(self, persist_leases=True):
output = networkctl_status('veth99')
print(output)
self.assertRegex(output, r'Address: 192.168.5.[0-9]* \(DHCP4 via 192.168.5.1\)')
@ -5737,6 +5733,19 @@ class NetworkdDHCPServerTests(unittest.TestCase, Utilities):
print(output)
self.assertRegex(output, "Offered DHCP leases: 192.168.5.[0-9]*")
if persist_leases:
with open('/var/lib/systemd/network/dhcp-server-lease/veth-peer', encoding='utf-8') as f:
check_json(f.read())
else:
self.assertFalse(os.path.exists('/var/lib/systemd/network/dhcp-server-lease/veth-peer'))
def test_dhcp_server(self):
copy_network_unit('25-veth.netdev', '25-dhcp-client.network', '25-dhcp-server.network')
start_networkd()
self.wait_online('veth99:routable', 'veth-peer:routable')
self.check_dhcp_server()
networkctl_reconfigure('veth-peer')
self.wait_online('veth-peer:routable')
@ -5748,6 +5757,22 @@ class NetworkdDHCPServerTests(unittest.TestCase, Utilities):
else:
self.fail()
def test_dhcp_server_persist_leases_no(self):
copy_networkd_conf_dropin('persist-leases-no.conf')
copy_network_unit('25-veth.netdev', '25-dhcp-client.network', '25-dhcp-server.network')
start_networkd()
self.wait_online('veth99:routable', 'veth-peer:routable')
self.check_dhcp_server(persist_leases=False)
remove_networkd_conf_dropin('persist-leases-no.conf')
with open(os.path.join(network_unit_dir, '25-dhcp-server.network'), mode='a', encoding='utf-8') as f:
f.write('[DHCPServer]\nPersistLeases=no')
restart_networkd()
self.wait_online('veth99:routable', 'veth-peer:routable')
self.check_dhcp_server(persist_leases=False)
def test_dhcp_server_null_server_address(self):
copy_network_unit('25-veth.netdev', '25-dhcp-client.network', '25-dhcp-server-null-server-address.network')
start_networkd()