1# SPDX-License-Identifier: GPL-2.0
2#
3# Copyright (c) 2023 Collabora Ltd
4#
5# Helpers for outputting in KTAP format
6#
7KTAP_TESTNO=1
8KTAP_CNT_PASS=0
9KTAP_CNT_FAIL=0
10KTAP_CNT_SKIP=0
11
12ktap_print_header() {
13	echo "TAP version 13"
14}
15
16ktap_set_plan() {
17	num_tests="$1"
18
19	echo "1..$num_tests"
20}
21
22ktap_skip_all() {
23	echo -n "1..0 # SKIP "
24	echo $@
25}
26
27__ktap_test() {
28	result="$1"
29	description="$2"
30	directive="$3" # optional
31
32	local directive_str=
33	[[ ! -z "$directive" ]] && directive_str="# $directive"
34
35	echo $result $KTAP_TESTNO $description $directive_str
36
37	KTAP_TESTNO=$((KTAP_TESTNO+1))
38}
39
40ktap_test_pass() {
41	description="$1"
42
43	result="ok"
44	__ktap_test "$result" "$description"
45
46	KTAP_CNT_PASS=$((KTAP_CNT_PASS+1))
47}
48
49ktap_test_skip() {
50	description="$1"
51
52	result="ok"
53	directive="SKIP"
54	__ktap_test "$result" "$description" "$directive"
55
56	KTAP_CNT_SKIP=$((KTAP_CNT_SKIP+1))
57}
58
59ktap_test_fail() {
60	description="$1"
61
62	result="not ok"
63	__ktap_test "$result" "$description"
64
65	KTAP_CNT_FAIL=$((KTAP_CNT_FAIL+1))
66}
67
68ktap_print_totals() {
69	echo "# Totals: pass:$KTAP_CNT_PASS fail:$KTAP_CNT_FAIL xfail:0 xpass:0 skip:$KTAP_CNT_SKIP error:0"
70}
71