Some versions of iproute2 will output more than one line per entry, which
will cause the test to fail, like:
TEST: ipv6: list and flush cached exceptions [FAIL]
can't list cached exceptions
That happens, for example, with iproute2 4.15.0. When using the -oneline
option, this will work just fine:
TEST: ipv6: list and flush cached exceptions [ OK ]
This also works just fine with a more recent version of iproute2, like
5.4.0.
For some reason, two lines are printed for the IPv4 test no matter what
version of iproute2 is used. Use the same -oneline parameter there instead
of counting the lines twice.
Signed-off-by: Thadeu Lima de Souza Cascardo <[email protected]>
---
tools/testing/selftests/net/pmtu.sh | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/tools/testing/selftests/net/pmtu.sh b/tools/testing/selftests/net/pmtu.sh
index ab367e75f095..d697815d2785 100755
--- a/tools/testing/selftests/net/pmtu.sh
+++ b/tools/testing/selftests/net/pmtu.sh
@@ -1249,8 +1249,7 @@ test_list_flush_ipv4_exception() {
done
run_cmd ${ns_a} ping -q -M want -i 0.1 -c 2 -s 1800 "${dst2}"
- # Each exception is printed as two lines
- if [ "$(${ns_a} ip route list cache | wc -l)" -ne 202 ]; then
+ if [ "$(${ns_a} ip -oneline route list cache | wc -l)" -ne 101 ]; then
err " can't list cached exceptions"
fail=1
fi
@@ -1300,7 +1299,7 @@ test_list_flush_ipv6_exception() {
run_cmd ${ns_a} ping -q -M want -i 0.1 -w 1 -s 1800 "${dst_prefix1}${i}"
done
run_cmd ${ns_a} ping -q -M want -i 0.1 -w 1 -s 1800 "${dst2}"
- if [ "$(${ns_a} ip -6 route list cache | wc -l)" -ne 101 ]; then
+ if [ "$(${ns_a} ip -oneline -6 route list cache | wc -l)" -ne 101 ]; then
err " can't list cached exceptions"
fail=1
fi
--
2.20.1
Hi,
On Thu, 28 Nov 2019 15:58:06 -0300
Thadeu Lima de Souza Cascardo <[email protected]> wrote:
> Some versions of iproute2 will output more than one line per entry, which
> will cause the test to fail, like:
>
> TEST: ipv6: list and flush cached exceptions [FAIL]
> can't list cached exceptions
>
> That happens, for example, with iproute2 4.15.0. When using the -oneline
> option, this will work just fine:
>
> TEST: ipv6: list and flush cached exceptions [ OK ]
>
> This also works just fine with a more recent version of iproute2, like
> 5.4.0.
>
> For some reason, two lines are printed for the IPv4 test no matter what
> version of iproute2 is used. Use the same -oneline parameter there instead
> of counting the lines twice.
Thanks, it looks definitely more robust this way.
Fixes: b964641e9925 ("selftests: pmtu: Make list_flush_ipv6_exception test more demanding")
> Signed-off-by: Thadeu Lima de Souza Cascardo <[email protected]>
Acked-by: Stefano Brivio <[email protected]>
--
Stefano
From: Thadeu Lima de Souza Cascardo <[email protected]>
Date: Thu, 28 Nov 2019 15:58:06 -0300
> Some versions of iproute2 will output more than one line per entry, which
> will cause the test to fail, like:
>
> TEST: ipv6: list and flush cached exceptions [FAIL]
> can't list cached exceptions
>
> That happens, for example, with iproute2 4.15.0. When using the -oneline
> option, this will work just fine:
>
> TEST: ipv6: list and flush cached exceptions [ OK ]
>
> This also works just fine with a more recent version of iproute2, like
> 5.4.0.
>
> For some reason, two lines are printed for the IPv4 test no matter what
> version of iproute2 is used. Use the same -oneline parameter there instead
> of counting the lines twice.
>
> Signed-off-by: Thadeu Lima de Souza Cascardo <[email protected]>
Applied with Fixes: tag added and queued up for -stable.
Thanks.