kunit: tool: add test counts to JSON output

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>
This commit is contained in:
Rae Moar 2025-05-16 20:16:15 +00:00 committed by Shuah Khan
parent d208025db6
commit ce7ff26606

View File

@ -39,10 +39,20 @@ def _get_group_json(test: Test, common_fields: JsonObj) -> JsonObj:
status = _status_map.get(subtest.status, "FAIL") status = _status_map.get(subtest.status, "FAIL")
test_cases.append({"name": subtest.name, "status": status}) 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 = { test_group = {
"name": test.name, "name": test.name,
"sub_groups": sub_groups, "sub_groups": sub_groups,
"test_cases": test_cases, "test_cases": test_cases,
"misc": counts_json
} }
test_group.update(common_fields) test_group.update(common_fields)
return test_group return test_group