Skip to content

Commit

Permalink
kunit: tool: fix count of tests if late test plan
Browse files Browse the repository at this point in the history
Fix test count with late test plan.

For example,
  TAP version 13
  ok 1 test1
  1..4

Returns a count of 1 passed, 1 crashed (because it expects tests after
the test plan): returning the total count of 2 tests

Change this to be 1 passed, 1 error: total count of 1 test

Link: https://lore.kernel.org/r/20250319223351.1517262-1-rmoar@google.com
Signed-off-by: Rae Moar <rmoar@google.com>
Reviewed-by: David Gow <davidgow@google.com>
Signed-off-by: Shuah Khan <shuah@kernel.org>
  • Loading branch information
Rae Moar authored and Shuah Khan committed Apr 8, 2025
1 parent 0af2f6b commit 14e594a
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 2 deletions.
4 changes: 4 additions & 0 deletions tools/testing/kunit/kunit_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -809,6 +809,10 @@ def parse_test(lines: LineStream, expected_num: int, log: List[str], is_subtest:
test.log.extend(parse_diagnostic(lines))
if test.name != "" and not peek_test_name_match(lines, test):
test.add_error(printer, 'missing subtest result line!')
elif not lines:
print_log(test.log, printer)
test.status = TestStatus.NO_TESTS
test.add_error(printer, 'No more test results!')
else:
parse_test_result(lines, test, expected_num, printer)

Expand Down
4 changes: 2 additions & 2 deletions tools/testing/kunit/kunit_tool_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -371,8 +371,8 @@ def test_parse_late_test_plan(self):
"""
result = kunit_parser.parse_run_tests(output.splitlines(), stdout)
# Missing test results after test plan should alert a suspected test crash.
self.assertEqual(kunit_parser.TestStatus.TEST_CRASHED, result.status)
self.assertEqual(result.counts, kunit_parser.TestCounts(passed=1, crashed=1, errors=1))
self.assertEqual(kunit_parser.TestStatus.SUCCESS, result.status)
self.assertEqual(result.counts, kunit_parser.TestCounts(passed=1, errors=2))

def line_stream_from_strs(strs: Iterable[str]) -> kunit_parser.LineStream:
return kunit_parser.LineStream(enumerate(strs, start=1))
Expand Down

0 comments on commit 14e594a

Please sign in to comment.