]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
kunit: tool: Add test for nested test result reporting
authorThomas Weißschuh <thomas.weissschuh@linutronix.de>
Tue, 30 Dec 2025 12:26:35 +0000 (13:26 +0100)
committerShuah Khan <skhan@linuxfoundation.org>
Mon, 5 Jan 2026 22:35:49 +0000 (15:35 -0700)
Currently there is a lack of tests validating the result reporting from
nested tests. Add one, it will also be used to validate upcoming changes
to the nested test parsing.

Link: https://lore.kernel.org/r/20251230-kunit-nested-failure-v1-1-98cfbeb87823@linutronix.de
Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Reviewed-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_is_test_passed-failure-nested.log [new file with mode: 0644]

index a55b5085310d1bc54a549d3f36a83f7697fb8881..81a0996edef4b191410db0af2fcce166bf49a9d2 100755 (executable)
@@ -165,6 +165,16 @@ class KUnitParserTest(unittest.TestCase):
                self.assertEqual(kunit_parser.TestStatus.FAILURE, result.status)
                self.assertEqual(result.counts.errors, 0)
 
+       def test_parse_failed_nested_tests_log(self):
+               nested_log = test_data_path('test_is_test_passed-failure-nested.log')
+               with open(nested_log) as file:
+                       result = kunit_parser.parse_run_tests(file.readlines(), stdout)
+               self.assertEqual(kunit_parser.TestStatus.FAILURE, result.status)
+               self.assertEqual(result.counts.failed, 2)
+               self.assertEqual(kunit_parser.TestStatus.FAILURE, result.subtests[0].status)
+               self.assertEqual(kunit_parser.TestStatus.FAILURE, result.subtests[1].status)
+               self.assertEqual(kunit_parser.TestStatus.FAILURE, result.subtests[1].subtests[0].status)
+
        def test_no_header(self):
                empty_log = test_data_path('test_is_test_passed-no_tests_run_no_header.log')
                with open(empty_log) as file:
diff --git a/tools/testing/kunit/test_data/test_is_test_passed-failure-nested.log b/tools/testing/kunit/test_data/test_is_test_passed-failure-nested.log
new file mode 100644 (file)
index 0000000..2e528da
--- /dev/null
@@ -0,0 +1,7 @@
+KTAP version 1
+1..2
+not ok 1 subtest 1
+    KTAP version 1
+    1..1
+        not ok 1 subsubtest 1
+not ok 2 subtest 2