Re: [PATCH] selftests/mm: emit KTAP output from ksft_kmemleak_dedup
Usama Anjum <[email protected]>
| Newsgroups | org.kvack.linux-mm,org.kernel.vger.linux-kernel,org.kernel.vger.linux-kselftest |
|---|---|
| Message-ID | <[email protected]> |
On 12/08/2026 2:21 pm, Song Hu wrote: > 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 <[email protected]> > --- > .../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 <[email protected]> > > -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 "$*" Please use ktap_test_skip to make it generic please. > + exit "$KSFT_SKIP" > } > > fail() { > - echo "FAIL: $*" > - exit 1 > + ktap_exit_fail_msg "$*" Please call ktap_test_fail instead here to mark the failure. ktap_exit_fail_msg is usually used in unrecoverable error case. > } > > pass() { > - echo "PASS: $*" > - exit 0 > + ktap_set_plan 1 ktap_set_plan must be called for fail and skip cases as well. So please move it to the very start of the test. > + ktap_test_pass "$*" > + ktap_finished ktap_finished must be called for all the cases (skip/failure) as well it prints the final line that how many tests got pass/failed or skipped. Please look into how other tests work and then refactor this test accordingly. > } > > [ "$(id -u)" -eq 0 ] || skip "must run as root"