test: Only select a single interface or gateway in tests

The queries we use in the test scripts to locate the external interface
or gateway can return multiple results.  We get away with this because the
way we parse command output only looks at the last line.  It's not really
correct, though, and improvements to our handling of command output will
mean it breaks.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
David Gibson 2022-08-18 16:13:54 +10:00 committed by Stefano Brivio
parent 2fa308ac6e
commit 5beef08597
4 changed files with 7 additions and 7 deletions

View file

@ -28,7 +28,7 @@ check [ "__ADDR__" = "__HOST_ADDR__" ]
test DHCP: route test DHCP: route
gout GW ip -j -4 route show|jq -rM '.[] | select(.dst == "default").gateway' gout GW ip -j -4 route show|jq -rM '.[] | select(.dst == "default").gateway'
hout HOST_GW ip -j -4 route show|jq -rM '.[] | select(.dst == "default").gateway' hout HOST_GW ip -j -4 route show|jq -rM '[.[] | select(.dst == "default").gateway] | .[0]'
check [ "__GW__" = "__HOST_GW__" ] check [ "__GW__" = "__HOST_GW__" ]
test DHCP: MTU test DHCP: MTU
@ -55,7 +55,7 @@ check [ "__ADDR6__" = "__HOST_ADDR6__" ]
test DHCPv6: route test DHCPv6: route
gout GW6 ip -j -6 route show|jq -rM '.[] | select(.dst == "default").gateway' gout GW6 ip -j -6 route show|jq -rM '.[] | select(.dst == "default").gateway'
hout HOST_GW6 ip -j -6 route show|jq -rM '.[] | select(.dst == "default").gateway' hout HOST_GW6 ip -j -6 route show|jq -rM '[.[] | select(.dst == "default").gateway] | .[0]'
check [ "__GW6__" = "__HOST_GW6__" ] check [ "__GW6__" = "__HOST_GW6__" ]
# Strip interface specifier: interface names might differ between host and guest # Strip interface specifier: interface names might differ between host and guest

View file

@ -26,7 +26,7 @@ check [ __ADDR__ = __HOST_ADDR__ ]
test DHCP: route test DHCP: route
nsout GW ip -j -4 route show|jq -rM '.[] | select(.dst == "default").gateway' nsout GW ip -j -4 route show|jq -rM '.[] | select(.dst == "default").gateway'
hout HOST_GW ip -j -4 route show|jq -rM '.[] | select(.dst == "default").gateway' hout HOST_GW ip -j -4 route show|jq -rM '[.[] | select(.dst == "default").gateway] | .[0]'
check [ __GW__ = __HOST_GW__ ] check [ __GW__ = __HOST_GW__ ]
test DHCP: MTU test DHCP: MTU
@ -42,5 +42,5 @@ check [ __ADDR6__ = __HOST_ADDR6__ ]
test DHCPv6: route test DHCPv6: route
nsout GW6 ip -j -6 route show|jq -rM '.[] | select(.dst == "default").gateway' nsout GW6 ip -j -6 route show|jq -rM '.[] | select(.dst == "default").gateway'
hout HOST_GW6 ip -j -6 route show|jq -rM '.[] | select(.dst == "default").gateway' hout HOST_GW6 ip -j -6 route show|jq -rM '[.[] | select(.dst == "default").gateway] | .[0]'
check [ __GW6__ = __HOST_GW6__ ] check [ __GW6__ = __HOST_GW6__ ]

View file

@ -17,7 +17,7 @@ htools ip jq sipcalc grep cut
test Interface name test Interface name
gout IFNAME ip -j link show | jq -rM '.[] | select(.link_type == "ether").ifname' gout IFNAME ip -j link show | jq -rM '.[] | select(.link_type == "ether").ifname'
guest ip link set dev __IFNAME__ up && sleep 2 guest ip link set dev __IFNAME__ up && sleep 2
hout HOST_IFNAME6 ip -j -6 route show|jq -rM '.[] | select(.dst == "default").dev' hout HOST_IFNAME6 ip -j -6 route show|jq -rM '[.[] | select(.dst == "default").dev] | .[0]'
check [ -n "__IFNAME__" ] check [ -n "__IFNAME__" ]
test SLAAC: prefix test SLAAC: prefix
@ -29,5 +29,5 @@ check [ "__PREFIX6__" = "__HOST_PREFIX6__" ]
test SLAAC: route test SLAAC: route
gout GW6 ip -j -6 route show|jq -rM '.[] | select(.dst == "default").gateway' gout GW6 ip -j -6 route show|jq -rM '.[] | select(.dst == "default").gateway'
hout HOST_GW6 ip -j -6 route show|jq -rM '.[] | select(.dst == "default").gateway' hout HOST_GW6 ip -j -6 route show|jq -rM '[.[] | select(.dst == "default").gateway] | .[0]'
check [ __GW6__ = __HOST_GW6__ ] check [ __GW6__ = __HOST_GW6__ ]

View file

@ -29,5 +29,5 @@ check [ "__PREFIX6__" = "__HOST_PREFIX6__" ]
test SLAAC: route test SLAAC: route
nsout GW6 ip -j -6 route show|jq -rM '.[] | select(.dst == "default").gateway' nsout GW6 ip -j -6 route show|jq -rM '.[] | select(.dst == "default").gateway'
hout HOST_GW6 ip -j -6 route show|jq -rM '.[] | select(.dst == "default").gateway' hout HOST_GW6 ip -j -6 route show|jq -rM '[.[] | select(.dst == "default").gateway] | .[0]'
check [ __GW6__ = __HOST_GW6__ ] check [ __GW6__ = __HOST_GW6__ ]