2021-10-06 07:13:21

by David Gow

[permalink] [raw]
Subject: [PATCH] kunit: Report test parameter results as (K)TAP subtests

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,
displayed in the formatted results, and counted for test statistics.

[1]: https://lore.kernel.org/linux-kselftest/CABVgOSnJAgWvTTABaF082LuYjAoAWzrBsyu9sT7x4GGMVsOD6Q@mail.gmail.com/
[2]: https://lore.kernel.org/linux-kselftest/[email protected]/

Signed-off-by: David Gow <[email protected]>
---
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


2021-10-06 20:36:43

by Daniel Latypov

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

On Wed, Oct 6, 2021 at 12:11 AM David Gow <[email protected]> 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@mail.gmail.com/
> [2]: https://lore.kernel.org/linux-kselftest/[email protected]/
>
> Signed-off-by: David Gow <[email protected]>
> ---
> 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
>

2021-10-06 20:58:48

by Brendan Higgins

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

On Wed, Oct 6, 2021 at 1:32 PM Daniel Latypov <[email protected]> wrote:
>
> On Wed, Oct 6, 2021 at 12:11 AM David Gow <[email protected]> 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.

I agree with Daniel. I think we should just get that fixed first. I
will poke Shuah to start applying patches for 5.16 to give us a place
to work.

> > displayed in the formatted results, and counted for test statistics.
> >
> > [1]: https://lore.kernel.org/linux-kselftest/CABVgOSnJAgWvTTABaF082LuYjAoAWzrBsyu9sT7x4GGMVsOD6Q@mail.gmail.com/
> > [2]: https://lore.kernel.org/linux-kselftest/[email protected]/
> >
> > Signed-off-by: David Gow <[email protected]>
> > ---
> > 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
> >