Lines Matching refs:test

254 			version_type: str, test: Test, printer: Printer) -> None:
269 test.add_error(printer, f'{version_type} version lower than expected!')
271 test.add_error(printer, f'{version_type} version higer than expected!')
273 def parse_ktap_header(lines: LineStream, test: Test, printer: Printer) -> bool:
294 check_version(version_num, KTAP_VERSIONS, 'KTAP', test, printer)
297 check_version(version_num, TAP_VERSIONS, 'TAP', test, printer)
305 def parse_test_header(lines: LineStream, test: Test) -> bool:
323 test.name = match.group(1)
329 def parse_test_plan(lines: LineStream, test: Test) -> bool:
348 test.expected_count = None
351 test.expected_count = expected_count
359 def peek_test_name_match(lines: LineStream, test: Test) -> bool:
382 return name == test.name
384 def parse_test_result(lines: LineStream, test: Test,
419 test.name = skip_match.group(4)
421 test.name = match.group(4)
426 test.add_error(printer, f'Expected test number {expected_num} but found {num}')
431 test.status = TestStatus.SKIPPED
433 test.status = TestStatus.SUCCESS
435 test.status = TestStatus.FAILURE
492 def print_test_header(test: Test, printer: Printer) -> None:
504 message = test.name
509 if test.expected_count:
510 if test.expected_count == 1:
522 def format_test_result(test: Test, printer: Printer) -> str:
537 if test.status == TestStatus.SUCCESS:
538 return printer.green('[PASSED] ') + test.name
539 if test.status == TestStatus.SKIPPED:
540 return printer.yellow('[SKIPPED] ') + test.name
541 if test.status == TestStatus.NO_TESTS:
542 return printer.yellow('[NO TESTS RUN] ') + test.name
543 if test.status == TestStatus.TEST_CRASHED:
544 print_log(test.log, printer)
545 return stdout.red('[CRASHED] ') + test.name
546 print_log(test.log, printer)
547 return printer.red('[FAILED] ') + test.name
549 def print_test_result(test: Test, printer: Printer) -> None:
560 printer.print_with_timestamp(format_test_result(test, printer))
562 def print_test_footer(test: Test, printer: Printer) -> None:
573 message = format_test_result(test, printer)
577 def print_test(test: Test, failed_only: bool, printer: Printer) -> None:
589 if test.name == "main":
591 for subtest in test.subtests:
594 elif test.subtests != []:
595 if not failed_only or not test.ok_status():
596 print_test_header(test, printer)
597 for subtest in test.subtests:
599 print_test_footer(test, printer)
601 if not failed_only or not test.ok_status():
602 print_test_result(test, printer)
604 def _summarize_failed_tests(test: Test) -> str:
607 def failed_names(test: Test, parent_name: str) -> List[str]:
610 full_name = test.name
612 full_name = parent_name + '.' + test.name
614 if not test.subtests: # this is a leaf node
619 failed_subtests = [sub for sub in test.subtests if not sub.ok_status()]
620 if parent_name and len(failed_subtests) == len(test.subtests):
628 failures = failed_names(test, '')
636 def print_summary_line(test: Test, printer: Printer) -> None:
651 if test.status == TestStatus.SUCCESS:
653 elif test.status in (TestStatus.SKIPPED, TestStatus.NO_TESTS):
661 if test.ok_status() or test.counts.total() < 100:
663 summarized = _summarize_failed_tests(test)
670 def bubble_up_test_results(test: Test) -> None:
680 subtests = test.subtests
681 counts = test.counts
682 status = test.status
687 elif test.counts.get_status() == TestStatus.TEST_CRASHED:
688 test.status = TestStatus.TEST_CRASHED
751 test = Test()
752 test.log.extend(log)
756 test.log.extend(err_log)
761 test.name = "main"
762 parse_ktap_header(lines, test, printer)
763 test.log.extend(parse_diagnostic(lines))
764 parse_test_plan(lines, test)
769 ktap_line = parse_ktap_header(lines, test, printer)
770 subtest_line = parse_test_header(lines, test)
771 test.log.extend(parse_diagnostic(lines))
772 parse_test_plan(lines, test)
775 print_test_header(test, printer)
777 expected_count = test.expected_count
788 if not lines or (peek_test_name_match(lines, test) and
794 test.add_error(printer, 'missing expected subtest!')
796 test.counts.add_status(
800 test.log.extend(sub_log)
806 test.subtests = subtests
809 test.log.extend(parse_diagnostic(lines))
810 if test.name != "" and not peek_test_name_match(lines, test):
811 test.add_error(printer, 'missing subtest result line!')
813 print_log(test.log, printer)
814 test.status = TestStatus.NO_TESTS
815 test.add_error(printer, 'No more test results!')
817 parse_test_result(lines, test, expected_num, printer)
823 if test.status in (TestStatus.TEST_CRASHED, TestStatus.SUCCESS):
824 print_log(test.log, printer)
825 test.status = TestStatus.NO_TESTS
826 test.add_error(printer, '0 tests run!')
829 bubble_up_test_results(test)
833 print_test_footer(test, printer)
835 print_test_result(test, printer)
836 return test
852 test = Test()
854 test.name = '<missing>'
855 test.add_error(printer, 'Could not find any KTAP output. Did any KUnit tests run?')
856 test.status = TestStatus.FAILURE_TO_PARSE_TESTS
858 test = parse_test(lines, 0, [], False, printer)
859 if test.status != TestStatus.NO_TESTS:
860 test.status = test.counts.get_status()
862 return test