2024-01-31 22:05:39

by Nícolas F. R. A. Prado

[permalink] [raw]
Subject: [PATCH 0/4] selftests: ktap_helpers: Add some missing helpers

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/[email protected]/

Signed-off-by: Nícolas F. R. A. Prado <[email protected]>
---
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,
--
Nícolas F. R. A. Prado <[email protected]>



2024-01-31 22:19:49

by Nícolas F. R. A. Prado

[permalink] [raw]
Subject: [PATCH 1/4] selftests: ktap_helpers: Add helper to print diagnostic messages

Similar to the C counterpart, add a helper to print a diagnostic
message.

Signed-off-by: Nícolas F. R. A. Prado <[email protected]>
---
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"


--
2.43.0


2024-01-31 22:20:17

by Nícolas F. R. A. Prado

[permalink] [raw]
Subject: [PATCH 2/4] selftests: ktap_helpers: Add helper to pass/fail test based on exit code

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 <[email protected]>
---
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"
}

--
2.43.0


2024-01-31 22:20:51

by Nícolas F. R. A. Prado

[permalink] [raw]
Subject: [PATCH 3/4] selftests: ktap_helpers: Add a helper to abort the test

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 <[email protected]>
---
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"
}

--
2.43.0


2024-01-31 22:21:36

by Nícolas F. R. A. Prado

[permalink] [raw]
Subject: [PATCH 4/4] selftests: ktap_helpers: Add a helper to finish the test

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 <[email protected]>
---
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"
}

--
2.43.0


2024-02-20 23:02:09

by Shuah Khan

[permalink] [raw]
Subject: Re: [PATCH 0/4] selftests: ktap_helpers: Add some missing helpers

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/[email protected]/
>
> Signed-off-by: Nícolas F. R. A. Prado <[email protected]>
> ---
> 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