[PATCH net-next] selftests: icmp_redirect: remove xfail support
From: Eric Dumazet <edumazet@google.com>
Date: 2026-09-07 13:24:29
Subsystem:
kernel selftest framework, networking [general], the rest · Maintainers:
Shuah Khan, Shuah Khan, "David S. Miller", Eric Dumazet, Jakub Kicinski, Paolo Abeni, Linus Torvalds
Commit 0a36a75c6818 ("selftests: icmp_redirect: support expected failures")
added xfail support to icmp_redirect.sh because IPv6 redirect tests
(including the VRF variants) were failing due to bugs in the IPv6
redirect logic.
Part of this was addressed in commit 0e02bf5de46a ("selftests:
icmp_redirect: IPv6 PMTU info should be cleared after redirect"), which
updated the test expectation that old PMTU information should be
cleared following a redirect.
Recently, commit cd51b74bdd0b ("ipv6: Fix redirect exception creation for
UDP/RAW sockets") fixed the underlying kernel bug in ip6_sk_redirect():
previously, passing sk->sk_bound_dev_if caused exception creation to
fail for sockets not bound to a device or bound to a VRF. Now that
skb->dev->ifindex is used, redirect exceptions are created properly for
UDP and RAW sockets, including in VRF environments.
With this fix in place, all IPv6 tests in icmp_redirect.sh pass as
expected. Passing xfail=1 to log_test() for all IPv6 tests is no longer
necessary and masks unexpected failures as XFAIL instead of FAIL.
Commit 3748939bce3f ("selftests: icmp_redirect: pass xfail=0 to log_test()")
worked around a bash error caused by empty xfail arguments on IPv4 tests.
Remove the obsolete xfail support from log_test() and restore standard
pass/fail reporting across all tests.
Tested:
Tests passed: 40
Tests failed: 0
Signed-off-by: Eric Dumazet <edumazet@google.com>
---
tools/testing/selftests/net/icmp_redirect.sh | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/tools/testing/selftests/net/icmp_redirect.sh b/tools/testing/selftests/net/icmp_redirect.sh
index b13c89a99ecbaa37638c39b12818d2d59a97ec50..35357d02e823bcad7106cd7d628824d1787af4e7 100755
--- a/tools/testing/selftests/net/icmp_redirect.sh
+++ b/tools/testing/selftests/net/icmp_redirect.sh@@ -64,14 +64,10 @@ log_test() local rc=$1 local expected=$2 local msg="$3" - local xfail=$4 if [ ${rc} -eq ${expected} ]; then printf "TEST: %-60s [ OK ]\n" "${msg}" nsuccess=$((nsuccess+1)) - elif [ ${rc} -eq ${xfail} ]; then - printf "TEST: %-60s [XFAIL]\n" "${msg}" - nxfail=$((nxfail+1)) else ret=1 nfail=$((nfail+1))
@@ -303,7 +299,7 @@ check_exception() ip -netns $h1 ro get ${H1_VRF_ARG} ${H2_N2_IP} | \ grep -E -v 'mtu|redirected' | grep -q "cache" fi - log_test $? 0 "IPv4: ${desc}" 0 + log_test $? 0 "IPv4: ${desc}" # No PMTU info for test "redirect" and "mtu exception plus redirect" if [ "$with_redirect" = "yes" ] && [ "$desc" != "redirect exception plus mtu" ]; then
@@ -319,7 +315,7 @@ check_exception() ip -netns $h1 -6 ro get ${H1_VRF_ARG} ${H2_N2_IP6} | \ grep -v "mtu" | grep -q "${R1_LLADDR}" fi - log_test $? 0 "IPv6: ${desc}" 1 + log_test $? 0 "IPv6: ${desc}" } run_ping()
@@ -485,7 +481,6 @@ which ping6 > /dev/null 2>&1 && ping6=$(which ping6) || ping6=$(which ping) ret=0 nsuccess=0 nfail=0 -nxfail=0 while getopts :pv o do
@@ -530,6 +525,5 @@ fi printf "\nTests passed: %3d\n" ${nsuccess} printf "Tests failed: %3d\n" ${nfail} -printf "Tests xfailed: %3d\n" ${nxfail} exit $ret
--
2.55.0.979.g7e5102b832-goog