mirror of
https://github.com/torvalds/linux.git
synced 2024-12-05 10:32:35 +00:00
2dd0b5a8fc
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> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
112 lines
1.6 KiB
Bash
112 lines
1.6 KiB
Bash
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# Copyright (c) 2023 Collabora Ltd
|
|
#
|
|
# Helpers for outputting in KTAP format
|
|
#
|
|
KTAP_TESTNO=1
|
|
KTAP_CNT_PASS=0
|
|
KTAP_CNT_FAIL=0
|
|
KTAP_CNT_SKIP=0
|
|
|
|
KSFT_PASS=0
|
|
KSFT_FAIL=1
|
|
KSFT_XFAIL=2
|
|
KSFT_XPASS=3
|
|
KSFT_SKIP=4
|
|
|
|
KSFT_NUM_TESTS=0
|
|
|
|
ktap_print_header() {
|
|
echo "TAP version 13"
|
|
}
|
|
|
|
ktap_print_msg()
|
|
{
|
|
echo "#" $@
|
|
}
|
|
|
|
ktap_set_plan() {
|
|
KSFT_NUM_TESTS="$1"
|
|
|
|
echo "1..$KSFT_NUM_TESTS"
|
|
}
|
|
|
|
ktap_skip_all() {
|
|
echo -n "1..0 # SKIP "
|
|
echo $@
|
|
}
|
|
|
|
__ktap_test() {
|
|
result="$1"
|
|
description="$2"
|
|
directive="$3" # optional
|
|
|
|
local directive_str=
|
|
[[ ! -z "$directive" ]] && directive_str="# $directive"
|
|
|
|
echo $result $KTAP_TESTNO $description $directive_str
|
|
|
|
KTAP_TESTNO=$((KTAP_TESTNO+1))
|
|
}
|
|
|
|
ktap_test_pass() {
|
|
description="$1"
|
|
|
|
result="ok"
|
|
__ktap_test "$result" "$description"
|
|
|
|
KTAP_CNT_PASS=$((KTAP_CNT_PASS+1))
|
|
}
|
|
|
|
ktap_test_skip() {
|
|
description="$1"
|
|
|
|
result="ok"
|
|
directive="SKIP"
|
|
__ktap_test "$result" "$description" "$directive"
|
|
|
|
KTAP_CNT_SKIP=$((KTAP_CNT_SKIP+1))
|
|
}
|
|
|
|
ktap_test_fail() {
|
|
description="$1"
|
|
|
|
result="not ok"
|
|
__ktap_test "$result" "$description"
|
|
|
|
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_exit_fail_msg() {
|
|
echo "Bail out! " $@
|
|
ktap_print_totals
|
|
|
|
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"
|
|
}
|