From: Yu Watanabe Date: Thu, 28 Mar 2024 02:07:35 +0000 (+0900) Subject: test-network: add test cases for PersistLeases=no X-Git-Tag: v256-rc1~366^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F31994%2Fhead;p=thirdparty%2Fsystemd.git test-network: add test cases for PersistLeases=no --- diff --git a/test/test-network/conf/persist-leases-no.conf b/test/test-network/conf/persist-leases-no.conf new file mode 100644 index 00000000000..50252651536 --- /dev/null +++ b/test/test-network/conf/persist-leases-no.conf @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later +[DHCPServer] +PersistLeases=no diff --git a/test/test-network/systemd-networkd-tests.py b/test/test-network/systemd-networkd-tests.py index 866c548fbe4..d3ee0e7c77b 100755 --- a/test/test-network/systemd-networkd-tests.py +++ b/test/test-network/systemd-networkd-tests.py @@ -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()