From: Yu Watanabe Date: Fri, 13 Jun 2025 18:42:24 +0000 (+0900) Subject: test-network: add test case for PersistLeases=runtime X-Git-Tag: v258-rc1~303^2~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=009d64dddd5a85117984be8610c1c41cad0b9036;p=thirdparty%2Fsystemd.git test-network: add test case for PersistLeases=runtime --- diff --git a/test/test-network/conf/persist-leases-runtime.conf b/test/test-network/conf/persist-leases-runtime.conf new file mode 100644 index 00000000000..6f1b7374c32 --- /dev/null +++ b/test/test-network/conf/persist-leases-runtime.conf @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later +[DHCPServer] +PersistLeases=runtime diff --git a/test/test-network/systemd-networkd-tests.py b/test/test-network/systemd-networkd-tests.py index 7d8a7c8f3fa..176eada5f97 100755 --- a/test/test-network/systemd-networkd-tests.py +++ b/test/test-network/systemd-networkd-tests.py @@ -7004,7 +7004,7 @@ class NetworkdDHCPServerTests(unittest.TestCase, Utilities): def tearDown(self): tear_down_common() - def check_dhcp_server(self, persist_leases=True): + def check_dhcp_server(self, persist_leases='yes'): output = networkctl_status('veth99') print(output) self.assertRegex(output, r'Address: 192.168.5.[0-9]* \(DHCPv4 via 192.168.5.1\)') @@ -7016,11 +7016,16 @@ 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()) + if persist_leases == 'yes': + path = '/var/lib/systemd/network/dhcp-server-lease/veth-peer' + elif persist_leases == 'runtime': + path = '/run/systemd/netif/dhcp-server-lease/veth-peer' else: - self.assertFalse(os.path.exists('/var/lib/systemd/network/dhcp-server-lease/veth-peer')) + path = None + + if path: + with open(path, encoding='utf-8') as f: + check_json(f.read()) def test_dhcp_server(self): copy_network_unit('25-veth.netdev', '25-dhcp-client.network', '25-dhcp-server.network') @@ -7046,7 +7051,7 @@ class NetworkdDHCPServerTests(unittest.TestCase, Utilities): start_networkd() self.wait_online('veth99:routable', 'veth-peer:routable') - self.check_dhcp_server(persist_leases=False) + self.check_dhcp_server(persist_leases='no') 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: @@ -7054,7 +7059,23 @@ class NetworkdDHCPServerTests(unittest.TestCase, Utilities): restart_networkd() self.wait_online('veth99:routable', 'veth-peer:routable') - self.check_dhcp_server(persist_leases=False) + self.check_dhcp_server(persist_leases='no') + + def test_dhcp_server_persist_leases_runtime(self): + copy_networkd_conf_dropin('persist-leases-runtime.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='runtime') + + remove_networkd_conf_dropin('persist-leases-runtime.conf') + with open(os.path.join(network_unit_dir, '25-dhcp-server.network'), mode='a', encoding='utf-8') as f: + f.write('[DHCPServer]\nPersistLeases=runtime') + restart_networkd() + self.wait_online('veth99:routable', 'veth-peer:routable') + + self.check_dhcp_server(persist_leases='runtime') 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')