Path: blob/master/tools/testing/selftests/kselftest/ktap_helpers.sh
26285 views
# SPDX-License-Identifier: GPL-2.01#2# Copyright (c) 2023 Collabora Ltd3#4# Helpers for outputting in KTAP format5#6KTAP_TESTNO=17KTAP_CNT_PASS=08KTAP_CNT_FAIL=09KTAP_CNT_XFAIL=010KTAP_CNT_SKIP=01112KSFT_PASS=013KSFT_FAIL=114KSFT_XFAIL=215KSFT_XPASS=316KSFT_SKIP=41718KSFT_NUM_TESTS=01920ktap_print_header() {21echo "TAP version 13"22}2324ktap_print_msg()25{26echo "#" $@27}2829ktap_set_plan() {30KSFT_NUM_TESTS="$1"3132echo "1..$KSFT_NUM_TESTS"33}3435ktap_skip_all() {36echo -n "1..0 # SKIP "37echo $@38}3940__ktap_test() {41result="$1"42description="$2"43directive="${3:-}" # optional4445local directive_str=46[ ! -z "$directive" ] && directive_str="# $directive"4748echo $result $KTAP_TESTNO $description $directive_str4950KTAP_TESTNO=$((KTAP_TESTNO+1))51}5253ktap_test_pass() {54description="$1"5556result="ok"57__ktap_test "$result" "$description"5859KTAP_CNT_PASS=$((KTAP_CNT_PASS+1))60}6162ktap_test_skip() {63description="$1"6465result="ok"66directive="SKIP"67__ktap_test "$result" "$description" "$directive"6869KTAP_CNT_SKIP=$((KTAP_CNT_SKIP+1))70}7172ktap_test_xfail() {73description="$1"7475result="ok"76directive="XFAIL"77__ktap_test "$result" "$description" "$directive"7879KTAP_CNT_XFAIL=$((KTAP_CNT_XFAIL+1))80}8182ktap_test_fail() {83description="$1"8485result="not ok"86__ktap_test "$result" "$description"8788KTAP_CNT_FAIL=$((KTAP_CNT_FAIL+1))89}9091ktap_test_result() {92description="$1"93shift9495if $@; then96ktap_test_pass "$description"97else98ktap_test_fail "$description"99fi100}101102ktap_exit_fail_msg() {103echo "Bail out! " $@104ktap_print_totals105106exit "$KSFT_FAIL"107}108109ktap_finished() {110ktap_print_totals111112if [ $((KTAP_CNT_PASS + KTAP_CNT_SKIP + KTAP_CNT_XFAIL)) -eq "$KSFT_NUM_TESTS" ]; then113exit "$KSFT_PASS"114else115exit "$KSFT_FAIL"116fi117}118119ktap_print_totals() {120if [ "$KTAP_CNT_SKIP" -gt 0 ]; then121echo "# $KTAP_CNT_SKIP skipped test(s) detected. " \122"Consider enabling relevant config options to improve coverage."123fi124echo "# Totals: pass:$KTAP_CNT_PASS fail:$KTAP_CNT_FAIL xfail:$KTAP_CNT_XFAIL xpass:0 skip:$KTAP_CNT_SKIP error:0"125}126127128