]> www.infradead.org Git - nvme.git/commitdiff
kunit: tool: add test to check parsing late test plan
authorRae Moar <rmoar@google.com>
Thu, 13 Mar 2025 19:27:14 +0000 (19:27 +0000)
committerShuah Khan <shuah@kernel.org>
Sun, 16 Mar 2025 00:13:43 +0000 (18:13 -0600)
Add test to check for the infinite loop caused by the inability
to parse a late test plan.

The test parses the following output:
 TAP version 13
 ok 4 test4
 1..4

Link: https://lore.kernel.org/r/20250313192714.1380005-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>
tools/testing/kunit/kunit_tool_test.py

index 0bcb0cc002f8a7c24b119d59b3e996efc953c626..5ff4f6ffd8736de3fca17dd9fcceabd7a68f9f98 100755 (executable)
@@ -363,6 +363,17 @@ class KUnitParserTest(unittest.TestCase):
                self.print_mock.assert_any_call(StrContains('  Indented more.'))
                self.noPrintCallContains('not ok 1 test1')
 
+       def test_parse_late_test_plan(self):
+               output = """
+               TAP version 13
+               ok 4 test4
+               1..4
+               """
+               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))
+
 def line_stream_from_strs(strs: Iterable[str]) -> kunit_parser.LineStream:
        return kunit_parser.LineStream(enumerate(strs, start=1))