tools/testing/kunit/kunit_json.py | 10 ++++++++++ 1 file changed, 10 insertions(+)
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(+)
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
On 2025-05-16 20:16:15+0000, Rae Moar wrote:
<snip>
> test_group = {
> "name": test.name,
> "sub_groups": sub_groups,
> "test_cases": test_cases,
> + "misc": counts_json
Should have a trailing comma for future extensibility.
In case history is rewritten anyways, this could be fixed up.
> }
> test_group.update(common_fields)
> return test_group
>
> base-commit: c2493384e8110d5a4792fff4b9d46e47b78ea10a
> --
> 2.49.0.1101.gccaa498523-goog
>
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
>
© 2016 - 2025 Red Hat, Inc.