Message ID | 20250516201615.1237037-1-rmoar@google.com |
---|---|
State | New |
Headers | show |
Series | kunit: tool: add test counts to JSON output | expand |
On Sat, 17 May 2025 at 04:17, Rae Moar <rmoar@google.com> wrote: > > 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 <rmoar@google.com> > --- Thanks! It's very nice to see `"failed": 0`! Reviewed-by: David Gow <davidgow@google.com> Cheers, -- David > 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 >
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
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 <rmoar@google.com> --- tools/testing/kunit/kunit_json.py | 10 ++++++++++ 1 file changed, 10 insertions(+) base-commit: c2493384e8110d5a4792fff4b9d46e47b78ea10a