From 80f38c1f65257887687291e12450bad32782773e Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Tue, 29 Oct 2024 02:18:05 +0900 Subject: [PATCH] test-network: add test case for tunnel Local=dhcp4 For issue #24854. --- .../conf/25-dhcp-client-ipv4-only.network | 1 + test/test-network/conf/25-sit-dhcp4.netdev | 8 ++++++++ test/test-network/conf/25-sit-dhcp4.network | 4 ++++ test/test-network/systemd-networkd-tests.py | 15 +++++++++++++-- 4 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 test/test-network/conf/25-sit-dhcp4.netdev create mode 100644 test/test-network/conf/25-sit-dhcp4.network diff --git a/test/test-network/conf/25-dhcp-client-ipv4-only.network b/test/test-network/conf/25-dhcp-client-ipv4-only.network index 5e83bd24dc1..7d79ee3485e 100644 --- a/test/test-network/conf/25-dhcp-client-ipv4-only.network +++ b/test/test-network/conf/25-dhcp-client-ipv4-only.network @@ -6,6 +6,7 @@ Name=veth99 DHCP=ipv4 IPv6AcceptRA=no Address=192.168.5.250/24 +Tunnel=sit-dhcp4 [DHCPv4] RequestAddress=192.168.5.110 diff --git a/test/test-network/conf/25-sit-dhcp4.netdev b/test/test-network/conf/25-sit-dhcp4.netdev new file mode 100644 index 00000000000..7f89504ceef --- /dev/null +++ b/test/test-network/conf/25-sit-dhcp4.netdev @@ -0,0 +1,8 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later +[NetDev] +Name=sit-dhcp4 +Kind=sit + +[Tunnel] +Local=dhcp4 +Remote=any diff --git a/test/test-network/conf/25-sit-dhcp4.network b/test/test-network/conf/25-sit-dhcp4.network new file mode 100644 index 00000000000..bcf330579c9 --- /dev/null +++ b/test/test-network/conf/25-sit-dhcp4.network @@ -0,0 +1,4 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later +[Match] +Name=sit-dhcp4 +Type=sit diff --git a/test/test-network/systemd-networkd-tests.py b/test/test-network/systemd-networkd-tests.py index 82339583bed..61a4933d652 100755 --- a/test/test-network/systemd-networkd-tests.py +++ b/test/test-network/systemd-networkd-tests.py @@ -6829,7 +6829,8 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities): @expectedFailureIfKernelReturnsInvalidFlags() def test_dhcp_client_ipv4_only(self): - copy_network_unit('25-veth.netdev', '25-dhcp-server-veth-peer.network', '25-dhcp-client-ipv4-only.network') + copy_network_unit('25-veth.netdev', '25-dhcp-server-veth-peer.network', '25-dhcp-client-ipv4-only.network', + '25-sit-dhcp4.netdev', '25-sit-dhcp4.network') self.setup_nftset('addr4', 'ipv4_addr') self.setup_nftset('network4', 'ipv4_addr', 'flags interval;') @@ -6842,7 +6843,7 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities): '--dhcp-option=option:domain-search,example.com', '--dhcp-alternate-port=67,5555', ipv4_range='192.168.5.110,192.168.5.119') - self.wait_online('veth99:routable', 'veth-peer:routable') + self.wait_online('veth99:routable', 'veth-peer:routable', 'sit-dhcp4:carrier') self.wait_address('veth99', r'inet 192.168.5.11[0-9]*/24', ipv='-4') print('## ip address show dev veth99 scope global') @@ -6915,6 +6916,11 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities): a = socket.inet_ntop(socket.AF_INET, bytearray(i['ConfigProvider'])) self.assertEqual('192.168.5.1', a) + print('## tunnel') + output = check_output('ip -d link show sit-dhcp4') + print(output) + self.assertRegex(output, fr'sit (ip6ip )?remote any local {address1} dev veth99') + print('## dnsmasq log') output = read_dnsmasq_log_file() print(output) @@ -7010,6 +7016,11 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities): a = socket.inet_ntop(socket.AF_INET, bytearray(i['ConfigProvider'])) self.assertEqual('192.168.5.1', a) + print('## tunnel') + output = check_output('ip -d link show sit-dhcp4') + print(output) + self.assertRegex(output, fr'sit (ip6ip )?remote any local {address2} dev veth99') + print('## dnsmasq log') output = read_dnsmasq_log_file() print(output) -- 2.47.3