Linux Audio

Check our new training course

Loading...
Note: File does not exist in v4.17.
  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
 12KSFT_PASS=0
 13KSFT_FAIL=1
 14KSFT_XFAIL=2
 15KSFT_XPASS=3
 16KSFT_SKIP=4
 17
 18KSFT_NUM_TESTS=0
 19
 20ktap_print_header() {
 21	echo "TAP version 13"
 22}
 23
 24ktap_print_msg()
 25{
 26	echo "#" $@
 27}
 28
 29ktap_set_plan() {
 30	KSFT_NUM_TESTS="$1"
 31
 32	echo "1..$KSFT_NUM_TESTS"
 33}
 34
 35ktap_skip_all() {
 36	echo -n "1..0 # SKIP "
 37	echo $@
 38}
 39
 40__ktap_test() {
 41	result="$1"
 42	description="$2"
 43	directive="${3:-}" # optional
 44
 45	local directive_str=
 46	[ ! -z "$directive" ] && directive_str="# $directive"
 47
 48	echo $result $KTAP_TESTNO $description $directive_str
 49
 50	KTAP_TESTNO=$((KTAP_TESTNO+1))
 51}
 52
 53ktap_test_pass() {
 54	description="$1"
 55
 56	result="ok"
 57	__ktap_test "$result" "$description"
 58
 59	KTAP_CNT_PASS=$((KTAP_CNT_PASS+1))
 60}
 61
 62ktap_test_skip() {
 63	description="$1"
 64
 65	result="ok"
 66	directive="SKIP"
 67	__ktap_test "$result" "$description" "$directive"
 68
 69	KTAP_CNT_SKIP=$((KTAP_CNT_SKIP+1))
 70}
 71
 72ktap_test_fail() {
 73	description="$1"
 74
 75	result="not ok"
 76	__ktap_test "$result" "$description"
 77
 78	KTAP_CNT_FAIL=$((KTAP_CNT_FAIL+1))
 79}
 80
 81ktap_test_result() {
 82	description="$1"
 83	shift
 84
 85	if $@; then
 86		ktap_test_pass "$description"
 87	else
 88		ktap_test_fail "$description"
 89	fi
 90}
 91
 92ktap_exit_fail_msg() {
 93	echo "Bail out! " $@
 94	ktap_print_totals
 95
 96	exit "$KSFT_FAIL"
 97}
 98
 99ktap_finished() {
100	ktap_print_totals
101
102	if [ $((KTAP_CNT_PASS + KTAP_CNT_SKIP)) -eq "$KSFT_NUM_TESTS" ]; then
103		exit "$KSFT_PASS"
104	else
105		exit "$KSFT_FAIL"
106	fi
107}
108
109ktap_print_totals() {
110	echo "# Totals: pass:$KTAP_CNT_PASS fail:$KTAP_CNT_FAIL xfail:0 xpass:0 skip:$KTAP_CNT_SKIP error:0"
111}