test-network: check existence of kernel bug

This adds checks for the kernel bug caused by
3ddc2231c8,
it will be fixed by
https://patchwork.kernel.org/project/netdevbpf/patch/20240510072932.2678952-1-edumazet@google.com/
This commit is contained in:
Yu Watanabe 2024-05-10 20:38:06 +09:00
parent e92d7b7dd9
commit d22f2fb912

View file

@ -269,6 +269,22 @@ def expectedFailureIfNetdevsimWithSRIOVIsNotAvailable():
return f
def expectedFailureIfKernelReturnsInvalidFlags():
'''
This checks the kernel bug caused by 3ddc2231c8108302a8229d3c5849ee792a63230d.
It will be fixed by the following patch:
https://patchwork.kernel.org/project/netdevbpf/patch/20240510072932.2678952-1-edumazet@google.com/
'''
def f(func):
call_quiet('ip link add dummy98 type dummy')
call_quiet('ip link set up dev dummy98')
call_quiet('ip address add 192.0.2.1/24 dev dummy98 noprefixroute')
output = check_output('ip address show dev dummy98')
remove_link('dummy98')
return func if 'noprefixroute' in output else unittest.expectedFailure(func)
return f
# pylint: disable=C0415
def compare_kernel_version(min_kernel_version):
try:
@ -2823,6 +2839,7 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities):
check_json(networkctl_json())
@expectedFailureIfKernelReturnsInvalidFlags()
def test_address_static(self):
copy_network_unit('25-address-static.network', '12-dummy.netdev', copy_dropins=False)
self.setup_nftset('addr4', 'ipv4_addr')
@ -6295,6 +6312,7 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities):
self.assertIn('DHCPREPLY(veth-peer)', output)
self.assertIn('sent size: 0 option: 14 rapid-commit', output)
@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')