[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240509235553.5740-1-kuba@kernel.org>
Date: Thu, 9 May 2024 16:55:53 -0700
From: Jakub Kicinski <kuba@...nel.org>
To: davem@...emloft.net
Cc: netdev@...r.kernel.org,
edumazet@...gle.com,
pabeni@...hat.com,
Jakub Kicinski <kuba@...nel.org>,
vladimir.oltean@....com,
shuah@...nel.org,
petrm@...dia.com,
liuhangbin@...il.com,
bpoirier@...dia.com,
linux-kselftest@...r.kernel.org
Subject: [PATCH net-next] selftests: net: local_termination: annotate the expected failures
Vladimir said when adding this test:
The bridge driver fares particularly badly [...] mainly because
it does not implement IFF_UNICAST_FLT.
See commit 90b9566aa5cd ("selftests: forwarding: add a test for
local_termination.sh").
We don't want to hide the known gaps, but having a test which
always fails prevents us from catching regressions. Report
the cases we know may fail as XFAIL.
Signed-off-by: Jakub Kicinski <kuba@...nel.org>
---
CC: vladimir.oltean@....com
CC: shuah@...nel.org
CC: petrm@...dia.com
CC: liuhangbin@...il.com
CC: bpoirier@...dia.com
CC: linux-kselftest@...r.kernel.org
---
tools/testing/selftests/net/forwarding/lib.sh | 9 ++++++++
.../net/forwarding/local_termination.sh | 21 ++++++++++++++-----
2 files changed, 25 insertions(+), 5 deletions(-)
diff --git a/tools/testing/selftests/net/forwarding/lib.sh b/tools/testing/selftests/net/forwarding/lib.sh
index 3353a1745946..4fe28ab5d8b9 100644
--- a/tools/testing/selftests/net/forwarding/lib.sh
+++ b/tools/testing/selftests/net/forwarding/lib.sh
@@ -605,6 +605,15 @@ log_test_xfail()
RET=$ksft_xfail retmsg= log_test "$@"
}
+log_test_xfail()
+{
+ local test_name=$1
+ local opt_str=$2
+
+ printf "TEST: %-60s [XFAIL]\n" "$test_name $opt_str"
+ return 0
+}
+
log_info()
{
local msg=$1
diff --git a/tools/testing/selftests/net/forwarding/local_termination.sh b/tools/testing/selftests/net/forwarding/local_termination.sh
index c5b0cbc85b3e..4bba9c78db3e 100755
--- a/tools/testing/selftests/net/forwarding/local_termination.sh
+++ b/tools/testing/selftests/net/forwarding/local_termination.sh
@@ -73,6 +73,10 @@ check_rcv()
local pattern=$3
local should_receive=$4
local should_fail=
+ local xfail_sw=$5
+
+ local kind=$(ip -j -d link show dev $if_name |
+ jq -r '.[].linkinfo.info_kind')
[ $should_receive = true ] && should_fail=0 || should_fail=1
RET=0
@@ -81,7 +85,14 @@ check_rcv()
check_err_fail "$should_fail" "$?" "reception"
- log_test "$if_name: $type"
+ # If not a SW interface, ignore the XFAIL allowance
+ [ "$kind" != veth ] && [ "$kind" != bridge ] && xfail_sw=
+
+ if [ $RET -ne 0 ] && [ "$xfail_sw" == true ]; then
+ log_test_xfail "$if_name: $type"
+ else
+ log_test "$if_name: $type"
+ fi
}
mc_route_prepare()
@@ -157,7 +168,7 @@ run_test()
check_rcv $rcv_if_name "Unicast IPv4 to unknown MAC address" \
"$smac > $UNKNOWN_UC_ADDR1, ethertype IPv4 (0x0800)" \
- false
+ false true
check_rcv $rcv_if_name "Unicast IPv4 to unknown MAC address, promisc" \
"$smac > $UNKNOWN_UC_ADDR2, ethertype IPv4 (0x0800)" \
@@ -165,7 +176,7 @@ run_test()
check_rcv $rcv_if_name "Unicast IPv4 to unknown MAC address, allmulti" \
"$smac > $UNKNOWN_UC_ADDR3, ethertype IPv4 (0x0800)" \
- false
+ false true
check_rcv $rcv_if_name "Multicast IPv4 to joined group" \
"$smac > $JOINED_MACV4_MC_ADDR, ethertype IPv4 (0x0800)" \
@@ -173,7 +184,7 @@ run_test()
check_rcv $rcv_if_name "Multicast IPv4 to unknown group" \
"$smac > $UNKNOWN_MACV4_MC_ADDR1, ethertype IPv4 (0x0800)" \
- false
+ false true
check_rcv $rcv_if_name "Multicast IPv4 to unknown group, promisc" \
"$smac > $UNKNOWN_MACV4_MC_ADDR2, ethertype IPv4 (0x0800)" \
@@ -189,7 +200,7 @@ run_test()
check_rcv $rcv_if_name "Multicast IPv6 to unknown group" \
"$smac > $UNKNOWN_MACV6_MC_ADDR1, ethertype IPv6 (0x86dd)" \
- false
+ false true
check_rcv $rcv_if_name "Multicast IPv6 to unknown group, promisc" \
"$smac > $UNKNOWN_MACV6_MC_ADDR2, ethertype IPv6 (0x86dd)" \
--
2.45.0
Powered by blists - more mailing lists