[PATCH i-g-t 1/1] lib/igt_ktap: fix parsing problems for parametrized tests with no params
Janusz Krzysztofik
janusz.krzysztofik at linux.intel.com
Fri May 23 10:24:56 UTC 2025
Sorry for responding to myself, but I missed one point.
On Friday, 23 May 2025 12:16:00 CEST Janusz Krzysztofik wrote:
> On Friday, 23 May 2025 10:35:44 CEST Jan Sokolowski wrote:
> > In some cases, parametrized test might have no params and therefore no
> > results to be reported, which causes parser failures.
>
> Please add an excerpt from an error report and a related KTAP report from
> dmesg to your commit description for reference.
>
> >
> > Add a condition that checks for that in the parser.
> >
> > Signed-off-by: Jan Sokolowski <jan.sokolowski at intel.com>
> > Suggested-by: Michal Wajdeczko <michal.wajdeczko at intel.com>
>
> Please provide a reference to a real issue, if there is one tracked publicly.
>
> > ---
> > lib/igt_ktap.c | 4 ++++
> > 1 file changed, 4 insertions(+)
> >
> > diff --git a/lib/igt_ktap.c b/lib/igt_ktap.c
> > index 300fb2bb5..34306a1a0 100644
> > --- a/lib/igt_ktap.c
> > +++ b/lib/igt_ktap.c
> > @@ -250,6 +250,10 @@ int igt_ktap_parse(const char *buf, struct igt_ktap_results *ktap)
> > return -EINPROGRESS;
> > }
> >
> > + /* in case of parametrized test having no params and hence no results */
> > + if (igt_debug_on(ktap->expect == SUB_RESULT && code == IGT_EXIT_SKIP))
> > + ktap->expect = CASE_RESULT;
>
> NAK.
>
> That looks like you are trying to address a case when a test case opens a
> parametrized subtest section but returns no results from parametrized
> subtests. If that case is now recognized by the parser as protocol violation
> while it should not, i.e., empty parametrized results section should be
> allowed, then that should be fixed in the input parser section, not in a next
> section that evaluates parsing results.
Please also provide a reference to a generic KTAP or Linux kernel KTAP
specification that confirms legitimacy of empty section of parametrized
subtest results.
Thanks,
Janusz
>
> After the parser detects a KTAP parametrized test case header and a KTAP
> parametrized test case name, it shouldn't expect any parametrized subtest
> results like it does now but should just expect a test case result. KTAP
> parametrized subtest result lines detected when the KTAP test case result line
> is expected should still be accepted. Please find relevant steps in the
> parser code and fix them. Then, as soon as the current requirement of at
> lease one result of a parametrised subtest expected is killed, the SUB_RESULT
> phase may be dropped from the list of parsing phases as no longer needed.
>
> Please also add a corresponding test case, based on the now problematic KTAP
> output, to lib/tests/igt_ktap_parser.c
>
> Thanks,
> Janusz
>
> > +
> > /* neither a test case name nor result */
> > if (ktap->expect != SUB_RESULT && code == IGT_EXIT_INVALID)
> > return -EINPROGRESS;
> >
>
>
>
>
>
More information about the igt-dev
mailing list