kunit: tool: add test for parsing attributes
authorRae Moar <rmoar@google.com>
Thu, 7 Dec 2023 21:34:10 +0000 (21:34 +0000)
committerShuah Khan <skhan@linuxfoundation.org>
Mon, 18 Dec 2023 20:21:15 +0000 (13:21 -0700)
Add test for parsing attributes to kunit_tool_test.py. Test checks
attributes are parsed and saved in the test logs.

This test also checks that the attributes have not interfered with the
parsing of other test information, specifically the suite header as
the test plan was being incorrectely parsed.

Signed-off-by: Rae Moar <rmoar@google.com>
Reviewed-by: David Gow <davidgow@google.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
tools/testing/kunit/kunit_tool_test.py
tools/testing/kunit/test_data/test_parse_attributes.log [new file with mode: 0644]

index b28c1510be2eb98b1c27de38c38bd3ab3d7f3070..2beb7327e53fcb9f7d2eea9248022ef8eb6d9359 100755 (executable)
@@ -331,6 +331,22 @@ class KUnitParserTest(unittest.TestCase):
                        kunit_parser.parse_run_tests(file.readlines())
                self.print_mock.assert_any_call(StrContains('suite (1 subtest)'))
 
+       def test_parse_attributes(self):
+               ktap_log = test_data_path('test_parse_attributes.log')
+               with open(ktap_log) as file:
+                       result = kunit_parser.parse_run_tests(file.readlines())
+
+               # Test should pass with no errors
+               self.assertEqual(result.counts, kunit_parser.TestCounts(passed=1, errors=0))
+               self.assertEqual(kunit_parser.TestStatus.SUCCESS, result.status)
+
+               # Ensure suite header is parsed correctly
+               self.print_mock.assert_any_call(StrContains('suite (1 subtest)'))
+
+               # Ensure attributes in correct test log
+               self.assertContains('# module: example', result.subtests[0].log)
+               self.assertContains('# test.speed: slow', result.subtests[0].subtests[0].log)
+
        def test_show_test_output_on_failure(self):
                output = """
                KTAP version 1
diff --git a/tools/testing/kunit/test_data/test_parse_attributes.log b/tools/testing/kunit/test_data/test_parse_attributes.log
new file mode 100644 (file)
index 0000000..1a13c37
--- /dev/null
@@ -0,0 +1,9 @@
+KTAP version 1
+1..1
+  KTAP version 1
+  # Subtest: suite
+  # module: example
+  1..1
+  # test.speed: slow
+  ok 1 test
+ok 1 suite
\ No newline at end of file