Merge tag 'trace-printf-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/trace...
[drm/drm-misc.git] / tools / testing / selftests / kselftest / ktap_helpers.sh
blob79a125eb24c2e8a0539a367a05f46d996d9164f0
1 # SPDX-License-Identifier: GPL-2.0
3 # Copyright (c) 2023 Collabora Ltd
5 # Helpers for outputting in KTAP format
7 KTAP_TESTNO=1
8 KTAP_CNT_PASS=0
9 KTAP_CNT_FAIL=0
10 KTAP_CNT_SKIP=0
12 KSFT_PASS=0
13 KSFT_FAIL=1
14 KSFT_XFAIL=2
15 KSFT_XPASS=3
16 KSFT_SKIP=4
18 KSFT_NUM_TESTS=0
20 ktap_print_header() {
21 echo "TAP version 13"
24 ktap_print_msg()
26 echo "#" $@
29 ktap_set_plan() {
30 KSFT_NUM_TESTS="$1"
32 echo "1..$KSFT_NUM_TESTS"
35 ktap_skip_all() {
36 echo -n "1..0 # SKIP "
37 echo $@
40 __ktap_test() {
41 result="$1"
42 description="$2"
43 directive="$3" # optional
45 local directive_str=
46 [ ! -z "$directive" ] && directive_str="# $directive"
48 echo $result $KTAP_TESTNO $description $directive_str
50 KTAP_TESTNO=$((KTAP_TESTNO+1))
53 ktap_test_pass() {
54 description="$1"
56 result="ok"
57 __ktap_test "$result" "$description"
59 KTAP_CNT_PASS=$((KTAP_CNT_PASS+1))
62 ktap_test_skip() {
63 description="$1"
65 result="ok"
66 directive="SKIP"
67 __ktap_test "$result" "$description" "$directive"
69 KTAP_CNT_SKIP=$((KTAP_CNT_SKIP+1))
72 ktap_test_fail() {
73 description="$1"
75 result="not ok"
76 __ktap_test "$result" "$description"
78 KTAP_CNT_FAIL=$((KTAP_CNT_FAIL+1))
81 ktap_test_result() {
82 description="$1"
83 shift
85 if $@; then
86 ktap_test_pass "$description"
87 else
88 ktap_test_fail "$description"
92 ktap_exit_fail_msg() {
93 echo "Bail out! " $@
94 ktap_print_totals
96 exit "$KSFT_FAIL"
99 ktap_finished() {
100 ktap_print_totals
102 if [ $((KTAP_CNT_PASS + KTAP_CNT_SKIP)) -eq "$KSFT_NUM_TESTS" ]; then
103 exit "$KSFT_PASS"
104 else
105 exit "$KSFT_FAIL"
109 ktap_print_totals() {
110 echo "# Totals: pass:$KTAP_CNT_PASS fail:$KTAP_CNT_FAIL xfail:0 xpass:0 skip:$KTAP_CNT_SKIP error:0"