112 lines · bash
1# SPDX-License-Identifier: GPL-2.02#3# Copyright (c) 2023 Collabora Ltd4#5# Helpers for outputting in KTAP format6#7KTAP_TESTNO=18KTAP_CNT_PASS=09KTAP_CNT_FAIL=010KTAP_CNT_SKIP=011 12KSFT_PASS=013KSFT_FAIL=114KSFT_XFAIL=215KSFT_XPASS=316KSFT_SKIP=417 18KSFT_NUM_TESTS=019 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" # optional44 45 local directive_str=46 [ ! -z "$directive" ] && directive_str="# $directive"47 48 echo $result $KTAP_TESTNO $description $directive_str49 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 shift84 85 if $@; then86 ktap_test_pass "$description"87 else88 ktap_test_fail "$description"89 fi90}91 92ktap_exit_fail_msg() {93 echo "Bail out! " $@94 ktap_print_totals95 96 exit "$KSFT_FAIL"97}98 99ktap_finished() {100 ktap_print_totals101 102 if [ $((KTAP_CNT_PASS + KTAP_CNT_SKIP)) -eq "$KSFT_NUM_TESTS" ]; then103 exit "$KSFT_PASS"104 else105 exit "$KSFT_FAIL"106 fi107}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}112