On Thu, 6 Mar 2025 at 10:00, David Gow davidgow@google.com wrote:
On Thu, 6 Mar 2025 at 08:29, Rae Moar rmoar@google.com wrote:
A bug was identified where the KTAP below caused an infinite loop:
TAP version 13 ok 4 test_case 1..4
The infinite loop was caused by the parser not parsing a test plan if following a test result line.
Fix bug to correctly parse test plan and add error if test plan is missing.
Signed-off-by: Rae Moar rmoar@google.com
Thanks for taking a look at this Rae! I tried to take a look myself but I could not really get a grip on the parsing logic in the time I had.
Thanks for looking into this: I don't think we want to unconditionally error if there's no test plan, though. Pretty much no parameterised tests include one -- it's not always possible to know how many tests there'll be in advance -- so this triggers all of the time.
Maybe we can only include an error if we find a test plan line after an existing result, or something?
Since I reported this bug, I discovered that the example above is in fact valid TAP:
The plan [...] must appear once, whether at the beginning or end of the output.
From https://testanything.org/tap-version-13-specification.html