nixosTests.networking: make routing table comparison more reliable

This was whitespace-sensitive, kept fighting with my editor and broke
the tests easily. To fix this, let python convert the output to
individual lines, and strip whitespace from them before comparing.
This commit is contained in:
Florian Klink 2020-04-13 19:16:12 +02:00
parent 532528190b
commit 1e1945319c

View File

@ -602,17 +602,17 @@ let
}; };
testScript = '' testScript = ''
targetIPv4Table = """ targetIPv4Table = [
10.0.0.0/16 proto static scope link mtu 1500 "10.0.0.0/16 proto static scope link mtu 1500",
192.168.1.0/24 proto kernel scope link src 192.168.1.2 "192.168.1.0/24 proto kernel scope link src 192.168.1.2",
192.168.2.0/24 via 192.168.1.1 proto static "192.168.2.0/24 via 192.168.1.1 proto static",
""".strip() ]
targetIPv6Table = """ targetIPv6Table = [
2001:1470:fffd:2097::/64 proto kernel metric 256 pref medium "2001:1470:fffd:2097::/64 proto kernel metric 256 pref medium",
2001:1470:fffd:2098::/64 via fdfd:b3f0::1 proto static metric 1024 pref medium "2001:1470:fffd:2098::/64 via fdfd:b3f0::1 proto static metric 1024 pref medium",
fdfd:b3f0::/48 proto static metric 1024 pref medium "fdfd:b3f0::/48 proto static metric 1024 pref medium",
""".strip() ]
machine.start() machine.start()
machine.wait_for_unit("network.target") machine.wait_for_unit("network.target")
@ -620,9 +620,9 @@ let
with subtest("test routing tables"): with subtest("test routing tables"):
ipv4Table = machine.succeed("ip -4 route list dev eth0 | head -n3").strip() ipv4Table = machine.succeed("ip -4 route list dev eth0 | head -n3").strip()
ipv6Table = machine.succeed("ip -6 route list dev eth0 | head -n3").strip() ipv6Table = machine.succeed("ip -6 route list dev eth0 | head -n3").strip()
assert ( assert [
ipv4Table == targetIPv4Table l.strip() for l in ipv4Table.splitlines()
), """ ] == targetIPv4Table, """
The IPv4 routing table does not match the expected one: The IPv4 routing table does not match the expected one:
Result: Result:
{} {}
@ -631,9 +631,9 @@ let
""".format( """.format(
ipv4Table, targetIPv4Table ipv4Table, targetIPv4Table
) )
assert ( assert [
ipv6Table == targetIPv6Table l.strip() for l in ipv6Table.splitlines()
), """ ] == targetIPv6Table, """
The IPv6 routing table does not match the expected one: The IPv6 routing table does not match the expected one:
Result: Result:
{} {}