Re: [PATCH] kunit: Report test parameter results as (K)TAP subtests

From: Daniel Latypov
Date: Wed Oct 06 2021 - 16:32:38 EST


On Wed, Oct 6, 2021 at 12:11 AM David Gow <davidgow@xxxxxxxxxx> wrote:
>
> Currently, the results for individial parameters in a parameterised test
> are simply output as (K)TAP diagnostic lines. However, the plan was
> always[1] to make these (K)TAP subtests when kunit_tool supported them.
>
> With [2], these are now supported. (v5 will print out an error about the
> missing plan line, but this can safely be ignored, and will hopefully be
> changed). As a result, individual test parameter results are parsed,

Hmm, I'd rather not condition users to ignore warnings.
It's possible we can get this all fixed up in time for 5.16, but we
have quite a bit we're trying to get in already, so I'm not sure.


> displayed in the formatted results, and counted for test statistics.
>
> [1]: https://lore.kernel.org/linux-kselftest/CABVgOSnJAgWvTTABaF082LuYjAoAWzrBsyu9sT7x4GGMVsOD6Q@xxxxxxxxxxxxxx/
> [2]: https://lore.kernel.org/linux-kselftest/20211006001447.20919-1-dlatypov@xxxxxxxxxx/
>
> Signed-off-by: David Gow <davidgow@xxxxxxxxxx>
> ---
> lib/kunit/test.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/lib/kunit/test.c b/lib/kunit/test.c
> index f246b847024e..02a9fdadcae2 100644
> --- a/lib/kunit/test.c
> +++ b/lib/kunit/test.c
> @@ -508,6 +508,8 @@ int kunit_run_tests(struct kunit_suite *suite)
> /* Get initial param. */
> param_desc[0] = '\0';
> test.param_value = test_case->generate_params(NULL, param_desc);
> + kunit_log(KERN_INFO, &test, KUNIT_SUBTEST_INDENT KUNIT_SUBTEST_INDENT
> + "# Subtest: %s", test_case->name);
> }
>
> do {
> @@ -520,9 +522,8 @@ int kunit_run_tests(struct kunit_suite *suite)
> }
>
> kunit_log(KERN_INFO, &test,
> - KUNIT_SUBTEST_INDENT
> - "# %s: %s %d - %s",
> - test_case->name,
> + KUNIT_SUBTEST_INDENT KUNIT_SUBTEST_INDENT
> + "%s %d - %s",
> kunit_status_to_ok_not_ok(test.status),
> test.param_index + 1, param_desc);
>
> --
> 2.33.0.800.g4c38ced690-goog
>