# SPDX-License-Identifier: GPL-2.0 # # Copyright (c) 2023 Collabora Ltd # # Kselftest helpers for outputting in KTAP format. Based on kselftest.h. # import sys ksft_cnt = {"pass": 0, "fail": 0, "skip": 0} ksft_num_tests = 0 ksft_test_number = 1 KSFT_PASS = 0 KSFT_FAIL = 1 KSFT_SKIP = 4 def print_header(): print("TAP version 13") def set_plan(num_tests): global ksft_num_tests ksft_num_tests = num_tests print("1..{}".format(num_tests)) def print_cnts(): print( f"# Totals: pass:{ksft_cnt['pass']} fail:{ksft_cnt['fail']} xfail:0 xpass:0 skip:{ksft_cnt['skip']} error:0" ) def print_msg(msg): print(f"# {msg}") def _test_print(result, description, directive=None): if directive: directive_str = f"# {directive}" else: directive_str = "" global ksft_test_number print(f"{result} {ksft_test_number} {description} {directive_str}") ksft_test_number += 1 def test_result_pass(description): _test_print("ok", description) ksft_cnt["pass"] += 1 def test_result_fail(description): _test_print("not ok", description) ksft_cnt["fail"] += 1 def test_result_skip(description): _test_print("ok", description, "SKIP") ksft_cnt["skip"] += 1 def test_result(condition, description=""): if condition: test_result_pass(description) else: test_result_fail(description) def finished(): if ksft_cnt["pass"] == ksft_num_tests: exit_code = KSFT_PASS else: exit_code = KSFT_FAIL print_cnts() sys.exit(exit_code) def exit_fail(): print_cnts() sys.exit(KSFT_FAIL) def exit_pass(): print_cnts() sys.exit(KSFT_PASS)