[PATCH net-next] selftests: net: exit with test failure status

From: Hangbin Liu

Date: Wed Oct 14 2026 - 01:33:24 EST


From: Hangbin Liu <liuhangbin@xxxxxxxxxx>

fdb_flush.sh, fib-onlink-tests.sh and l2tp.sh can print [FAIL]
subtests while still exiting with status 0. Their log_test(), aka
log_test_expected() in lib.sh, helpers record a failure in ret, but
the scripts never propagate ret to the exit code, so a kselftest runner
treats the run as a pass.

Initialize ret and exit with it at the end of each script so failed
subtests are reflected in the exit status.

Signed-off-by: Hangbin Liu <liuhangbin@xxxxxxxxxx>
---
The patch doesn't fix a regression, nothing is failing (or passing when it
shouldn't) because of it. So target the patch to net-next.
---
tools/testing/selftests/net/fdb_flush.sh | 3 +++
tools/testing/selftests/net/fib-onlink-tests.sh | 3 +++
tools/testing/selftests/net/l2tp.sh | 3 +++
3 files changed, 9 insertions(+)

diff --git a/tools/testing/selftests/net/fdb_flush.sh b/tools/testing/selftests/net/fdb_flush.sh
index 4965e52d5ef5..0827fdd60f8c 100755
--- a/tools/testing/selftests/net/fdb_flush.sh
+++ b/tools/testing/selftests/net/fdb_flush.sh
@@ -6,6 +6,7 @@
# some combinations of arguments.

source lib.sh
+ret=0

FLUSH_BY_STATE_TESTS="
vxlan_test_flush_by_permanent
@@ -778,3 +779,5 @@ for t in $TESTS
do
setup; $t; cleanup;
done
+
+exit $ret
diff --git a/tools/testing/selftests/net/fib-onlink-tests.sh b/tools/testing/selftests/net/fib-onlink-tests.sh
index a26075abf7d2..325da693c918 100755
--- a/tools/testing/selftests/net/fib-onlink-tests.sh
+++ b/tools/testing/selftests/net/fib-onlink-tests.sh
@@ -6,6 +6,7 @@
source lib.sh
PAUSE_ON_FAIL=${PAUSE_ON_FAIL:=no}
VERBOSE=0
+ret=0

# Network interfaces
# - odd in current namespace; even in peer ns
@@ -473,3 +474,5 @@ if [ "$TESTS" != "none" ]; then
printf "\nTests passed: %3d\n" ${nsuccess}
printf "Tests failed: %3d\n" ${nfail}
fi
+
+exit $ret
diff --git a/tools/testing/selftests/net/l2tp.sh b/tools/testing/selftests/net/l2tp.sh
index 41e8b19d1bd3..de4b5da2da1b 100755
--- a/tools/testing/selftests/net/l2tp.sh
+++ b/tools/testing/selftests/net/l2tp.sh
@@ -16,6 +16,7 @@
source lib.sh
VERBOSE=0
PAUSE_ON_FAIL=no
+ret=0

which ping6 > /dev/null 2>&1 && ping6=$(which ping6) || ping6=$(which ping)

@@ -357,3 +358,5 @@ cleanup

printf "\nTests passed: %3d\n" ${nsuccess}
printf "Tests failed: %3d\n" ${nfail}
+
+exit $ret

---
base-commit: d8674294aefef02266c4d47ad10131f1bffbe534
change-id: 20261014-self_ret-83b030f32ba3

Best regards,
--
Hangbin Liu <liuhangbin@xxxxxxxxxx>