From f7bdd562a925faeb38fe1618d0ca9c22bf4900ce Mon Sep 17 00:00:00 2001 From: Evgeny Vereshchagin Date: Fri, 2 Nov 2018 17:03:45 +0100 Subject: [PATCH 1/2] tests: make NetworkdNetWorkTests.test_routing_policy_rule pass on CentOS Depending on the content of /etc/iproute2/rt_dsfield, ip can print either `0x08` or `throughput` as was shown in https://github.com/systemd/systemd/issues/10617#issuecomment-435200859. --- test/test-network/systemd-networkd-tests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test-network/systemd-networkd-tests.py b/test/test-network/systemd-networkd-tests.py index a0db6eeb93..82d10ddc43 100755 --- a/test/test-network/systemd-networkd-tests.py +++ b/test/test-network/systemd-networkd-tests.py @@ -425,7 +425,7 @@ class NetworkdNetWorkTests(unittest.TestCase, Utilities): print(output) self.assertRegex(output, '111') self.assertRegex(output, 'from 192.168.100.18') - self.assertRegex(output, 'tos 0x08') + self.assertRegex(output, r'tos (?:0x08|throughput)\s') self.assertRegex(output, 'iif test1') self.assertRegex(output, 'oif test1') self.assertRegex(output, 'lookup 7') From 7a0a37b283217de8e724942d7f96590affb70b48 Mon Sep 17 00:00:00 2001 From: Evgeny Vereshchagin Date: Fri, 2 Nov 2018 22:08:30 +0100 Subject: [PATCH 2/2] tests: mark a few tests as expected failures when the required modules aren't available Closes https://github.com/systemd/systemd/issues/10617. --- test/test-network/systemd-networkd-tests.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/test/test-network/systemd-networkd-tests.py b/test/test-network/systemd-networkd-tests.py index 82d10ddc43..ff632740fc 100755 --- a/test/test-network/systemd-networkd-tests.py +++ b/test/test-network/systemd-networkd-tests.py @@ -22,6 +22,17 @@ dnsmasq_config_file='/var/run/networkd-ci/test-dnsmasq.conf' dnsmasq_pid_file='/var/run/networkd-ci/test-test-dnsmasq.pid' dnsmasq_log_file='/var/run/networkd-ci/test-dnsmasq-log-file' +def is_module_available(module_name): + return not subprocess.call(["modprobe", module_name]) + +def expectedFailureIfModuleIsNotAvailable(module_name): + def f(func): + if not is_module_available(module_name): + return unittest.expectedFailure(func) + return func + + return f + def setUpModule(): os.makedirs(network_unit_file_path, exist_ok=True) @@ -213,6 +224,7 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities): self.assertTrue(self.link_exits('macvlan99')) + @expectedFailureIfModuleIsNotAvailable('ipvlan') def test_ipvlan(self): self.copy_unit_to_networkd_unit_path('25-ipvlan.netdev', '11-dummy.netdev', 'ipvlan.network') @@ -248,6 +260,7 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities): self.assertTrue(self.link_exits('tap99')) + @expectedFailureIfModuleIsNotAvailable('vrf') def test_vrf(self): self.copy_unit_to_networkd_unit_path('25-vrf.netdev') @@ -255,6 +268,7 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities): self.assertTrue(self.link_exits('vrf99')) + @expectedFailureIfModuleIsNotAvailable('vcan') def test_vcan(self): self.copy_unit_to_networkd_unit_path('25-vcan.netdev')