]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
kunit: tool: add test counts to JSON output
authorRae Moar <rmoar@google.com>
Fri, 16 May 2025 20:16:15 +0000 (20:16 +0000)
committerShuah Khan <skhan@linuxfoundation.org>
Mon, 19 May 2025 19:22:28 +0000 (13:22 -0600)
Add the test counts to the JSON output from kunit.py. For example:

...
"git_branch": "kselftest",
"misc":
{
    "tests": 2,
    "passed": 1.
    "failed": 1,
    "crashed": 0,
    "skipped": 0,
    "errors": 0,
}
...

To output the JSON using the following command:
./tools/testing/kunit/kunit.py run example --json

This has been requested by KUnit users. The counts are in a "misc"
field because the JSON output needs to be compliant with the KCIDB
submission guide. There are no counts fields but there is a "misc" field
in the guide.

Link: https://lore.kernel.org/r/20250516201615.1237037-1-rmoar@google.com
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_json.py

index 10ff65689dd83ac9a64d77ea512256efd1a1ff30..80fa4e354a17afde99c92666a71b0c7ca237a594 100644 (file)
@@ -39,10 +39,20 @@ def _get_group_json(test: Test, common_fields: JsonObj) -> JsonObj:
                status = _status_map.get(subtest.status, "FAIL")
                test_cases.append({"name": subtest.name, "status": status})
 
+       test_counts = test.counts
+       counts_json = {
+               "tests": test_counts.total(),
+               "passed": test_counts.passed,
+               "failed": test_counts.failed,
+               "crashed": test_counts.crashed,
+               "skipped": test_counts.skipped,
+               "errors": test_counts.errors,
+       }
        test_group = {
                "name": test.name,
                "sub_groups": sub_groups,
                "test_cases": test_cases,
+               "misc": counts_json
        }
        test_group.update(common_fields)
        return test_group