This series adds a few missing functions to the shell KTAP helpers script which are present in the C counterpart, kselftest.h.
This series depends on "selftests: Move KTAP bash helpers to selftests common folder" https://lore.kernel.org/all/20240102141528.169947-1-laura.nao@collabora.com/
Signed-off-by: Nícolas F. R. A. Prado nfraprado@collabora.com --- Nícolas F. R. A. Prado (4): selftests: ktap_helpers: Add helper to print diagnostic messages selftests: ktap_helpers: Add helper to pass/fail test based on exit code selftests: ktap_helpers: Add a helper to abort the test selftests: ktap_helpers: Add a helper to finish the test
tools/testing/selftests/kselftest/ktap_helpers.sh | 39 +++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) --- base-commit: f1ca07220ad16a9efae7f68e4bade0db89b63a3c change-id: 20240131-ktap-sh-helpers-extend-805b77ca773c
Best regards,
Similar to the C counterpart, add a helper to print a diagnostic message.
Signed-off-by: Nícolas F. R. A. Prado nfraprado@collabora.com --- tools/testing/selftests/kselftest/ktap_helpers.sh | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/tools/testing/selftests/kselftest/ktap_helpers.sh b/tools/testing/selftests/kselftest/ktap_helpers.sh index dd79d96f3b5a..ecc1413c22cd 100644 --- a/tools/testing/selftests/kselftest/ktap_helpers.sh +++ b/tools/testing/selftests/kselftest/ktap_helpers.sh @@ -19,6 +19,11 @@ ktap_print_header() { echo "TAP version 13" }
+ktap_print_msg() +{ + echo "#" $@ +} + ktap_set_plan() { num_tests="$1"
Similar to the C counterpart, add a helper function that runs a command and passes or fails the test based on the result.
Signed-off-by: Nícolas F. R. A. Prado nfraprado@collabora.com --- tools/testing/selftests/kselftest/ktap_helpers.sh | 11 +++++++++++ 1 file changed, 11 insertions(+)
diff --git a/tools/testing/selftests/kselftest/ktap_helpers.sh b/tools/testing/selftests/kselftest/ktap_helpers.sh index ecc1413c22cd..29107924f5c2 100644 --- a/tools/testing/selftests/kselftest/ktap_helpers.sh +++ b/tools/testing/selftests/kselftest/ktap_helpers.sh @@ -76,6 +76,17 @@ ktap_test_fail() { KTAP_CNT_FAIL=$((KTAP_CNT_FAIL+1)) }
+ktap_test_result() { + description="$1" + shift + + if $@; then + ktap_test_pass "$description" + else + ktap_test_fail "$description" + fi +} + ktap_print_totals() { echo "# Totals: pass:$KTAP_CNT_PASS fail:$KTAP_CNT_FAIL xfail:0 xpass:0 skip:$KTAP_CNT_SKIP error:0" }
Similar to the C counterpart, add a helper function to abort the remainder of the test.
Signed-off-by: Nícolas F. R. A. Prado nfraprado@collabora.com --- tools/testing/selftests/kselftest/ktap_helpers.sh | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/tools/testing/selftests/kselftest/ktap_helpers.sh b/tools/testing/selftests/kselftest/ktap_helpers.sh index 29107924f5c2..87f93c6900c5 100644 --- a/tools/testing/selftests/kselftest/ktap_helpers.sh +++ b/tools/testing/selftests/kselftest/ktap_helpers.sh @@ -87,6 +87,13 @@ ktap_test_result() { fi }
+ktap_exit_fail_msg() { + echo "Bail out! " $@ + ktap_print_totals + + exit "$KSFT_FAIL" +} + ktap_print_totals() { echo "# Totals: pass:$KTAP_CNT_PASS fail:$KTAP_CNT_FAIL xfail:0 xpass:0 skip:$KTAP_CNT_SKIP error:0" }
Similar to the C counterpart, keep track of the number of test cases in the test plan and add a helper function to be called at the end of the test to print the results and exit with the corresponding exit code.
Signed-off-by: Nícolas F. R. A. Prado nfraprado@collabora.com --- tools/testing/selftests/kselftest/ktap_helpers.sh | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/kselftest/ktap_helpers.sh b/tools/testing/selftests/kselftest/ktap_helpers.sh index 87f93c6900c5..f2fbb914e058 100644 --- a/tools/testing/selftests/kselftest/ktap_helpers.sh +++ b/tools/testing/selftests/kselftest/ktap_helpers.sh @@ -15,6 +15,8 @@ KSFT_XFAIL=2 KSFT_XPASS=3 KSFT_SKIP=4
+KSFT_NUM_TESTS=0 + ktap_print_header() { echo "TAP version 13" } @@ -25,9 +27,9 @@ ktap_print_msg() }
ktap_set_plan() { - num_tests="$1" + KSFT_NUM_TESTS="$1"
- echo "1..$num_tests" + echo "1..$KSFT_NUM_TESTS" }
ktap_skip_all() { @@ -94,6 +96,16 @@ ktap_exit_fail_msg() { exit "$KSFT_FAIL" }
+ktap_finished() { + ktap_print_totals + + if [ $(("$KTAP_CNT_PASS" + "$KTAP_CNT_SKIP")) -eq "$KSFT_NUM_TESTS" ]; then + exit "$KSFT_PASS" + else + exit "$KSFT_FAIL" + fi +} + ktap_print_totals() { echo "# Totals: pass:$KTAP_CNT_PASS fail:$KTAP_CNT_FAIL xfail:0 xpass:0 skip:$KTAP_CNT_SKIP error:0" }
On 1/31/24 15:02, Nícolas F. R. A. Prado wrote:
This series adds a few missing functions to the shell KTAP helpers script which are present in the C counterpart, kselftest.h.
This series depends on "selftests: Move KTAP bash helpers to selftests common folder" https://lore.kernel.org/all/20240102141528.169947-1-laura.nao@collabora.com/
Signed-off-by: Nícolas F. R. A. Prado nfraprado@collabora.com
Nícolas F. R. A. Prado (4): selftests: ktap_helpers: Add helper to print diagnostic messages selftests: ktap_helpers: Add helper to pass/fail test based on exit code selftests: ktap_helpers: Add a helper to abort the test selftests: ktap_helpers: Add a helper to finish the test
tools/testing/selftests/kselftest/ktap_helpers.sh | 39 +++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-)
base-commit: f1ca07220ad16a9efae7f68e4bade0db89b63a3c change-id: 20240131-ktap-sh-helpers-extend-805b77ca773c
Best regards,
Applied to next for Linux 6.9-rc1
thanks, -- Shuah
linux-kselftest-mirror@lists.linaro.org