[PATCH] selftests/mm: emit KTAP output from ksft_kmemleak_dedup

From: Song Hu

Date: Wed Aug 12 2026 - 09:27:17 EST


ksft_kmemleak_dedup.sh reports its result with raw "SKIP:"/"FAIL":"PASS:"
echoes and bare exit codes instead of KTAP, so parse_kselftest.py cannot
read it. Convert it to the ktap_helpers.sh API, like its sibling
ksft_kmemleak_confirm.sh.

Signed-off-by: Song Hu <husong@xxxxxxxxxx>
---
.../selftests/mm/ksft_kmemleak_dedup.sh | 20 ++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/tools/testing/selftests/mm/ksft_kmemleak_dedup.sh b/tools/testing/selftests/mm/ksft_kmemleak_dedup.sh
index d01950244490..2db7f006808f 100755
--- a/tools/testing/selftests/mm/ksft_kmemleak_dedup.sh
+++ b/tools/testing/selftests/mm/ksft_kmemleak_dedup.sh
@@ -19,24 +19,30 @@
#
# Author: Breno Leitao <leitao@xxxxxxxxxx>

-ksft_skip=4
+# KTAP output helpers (ktap_skip_all, ktap_exit_fail_msg, ktap_test_pass, ...).
+DIR="$(dirname "$(readlink -f "$0")")"
+# shellcheck source=../kselftest/ktap_helpers.sh
+source "${DIR}"/../kselftest/ktap_helpers.sh
+
KMEMLEAK=/sys/kernel/debug/kmemleak
VERBOSE_PARAM=/sys/module/kmemleak/parameters/verbose
MODULE=kmemleak-test

+ktap_print_header
+
skip() {
- echo "SKIP: $*"
- exit $ksft_skip
+ ktap_skip_all "$*"
+ exit "$KSFT_SKIP"
}

fail() {
- echo "FAIL: $*"
- exit 1
+ ktap_exit_fail_msg "$*"
}

pass() {
- echo "PASS: $*"
- exit 0
+ ktap_set_plan 1
+ ktap_test_pass "$*"
+ ktap_finished
}

[ "$(id -u)" -eq 0 ] || skip "must run as root"
--
2.43.0