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.

Signed-off-by: Rae Moar <rm...@google.com>
---
 tools/testing/kunit/kunit_json.py | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/tools/testing/kunit/kunit_json.py 
b/tools/testing/kunit/kunit_json.py
index 10ff65689dd8..80fa4e354a17 100644
--- a/tools/testing/kunit/kunit_json.py
+++ b/tools/testing/kunit/kunit_json.py
@@ -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

base-commit: c2493384e8110d5a4792fff4b9d46e47b78ea10a
-- 
2.49.0.1101.gccaa498523-goog


Reply via email to