From: Yu Watanabe Date: Thu, 7 Sep 2023 21:33:19 +0000 (+0900) Subject: test-network: add testcase for [DHCPServer] ServerAddress= with null address X-Git-Tag: v255-rc1~523^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=47f1ce1677ba6bfd86b32c87df70f729a72af9a6;p=thirdparty%2Fsystemd.git test-network: add testcase for [DHCPServer] ServerAddress= with null address --- diff --git a/test/test-network/conf/25-dhcp-server-null-server-address.network b/test/test-network/conf/25-dhcp-server-null-server-address.network new file mode 100644 index 00000000000..fff83f4c27f --- /dev/null +++ b/test/test-network/conf/25-dhcp-server-null-server-address.network @@ -0,0 +1,14 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later +[Match] +Name=veth-peer + +[Network] +IPv6AcceptRA=false +DHCPServer=yes + +[DHCPServer] +ServerAddress=0.0.0.0/24 +PoolOffset=10 +PoolSize=50 +DNS=_server_address +NTP=_server_address diff --git a/test/test-network/systemd-networkd-tests.py b/test/test-network/systemd-networkd-tests.py index 90d68b54db7..9d1b273f95a 100755 --- a/test/test-network/systemd-networkd-tests.py +++ b/test/test-network/systemd-networkd-tests.py @@ -4935,6 +4935,29 @@ class NetworkdDHCPServerTests(unittest.TestCase, Utilities): output = check_output(*networkctl_cmd, '-n', '0', 'status', 'veth-peer', env=env) self.assertRegex(output, "Offered DHCP leases: 192.168.5.[0-9]*") + 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() + self.wait_online(['veth99:routable', 'veth-peer:routable']) + + output = check_output('ip --json address show dev veth-peer') + server_address = json.loads(output)[0]['addr_info'][0]['local'] + print(server_address) + + output = check_output('ip --json address show dev veth99') + client_address = json.loads(output)[0]['addr_info'][0]['local'] + print(client_address) + + output = check_output(*networkctl_cmd, '-n', '0', 'status', 'veth99', env=env) + print(output) + self.assertRegex(output, rf'Address: {client_address} \(DHCP4 via {server_address}\)') + self.assertIn(f'Gateway: {server_address}', output) + self.assertIn(f'DNS: {server_address}', output) + self.assertIn(f'NTP: {server_address}', output) + + output = check_output(*networkctl_cmd, '-n', '0', 'status', 'veth-peer', env=env) + self.assertIn(f'Offered DHCP leases: {client_address}', output) + def test_dhcp_server_with_uplink(self): copy_network_unit('25-veth.netdev', '25-dhcp-client.network', '25-dhcp-server-downstream.network', '12-dummy.netdev', '25-dhcp-server-uplink.network')