Re: [PATCH v2 1/1] Documentation: dev-tools: clarify KTAP specification wording

From: Frank Rowand
Date: Mon Feb 07 2022 - 12:00:33 EST


On 2/7/22 10:38 AM, Frank Rowand wrote:
> On 2/7/22 10:28 AM, frowand.list@xxxxxxxxx wrote:
>> From: Frank Rowand <frank.rowand@xxxxxxxx>
>>
>> Add the spec version to the title line.
>>
>> Explain likely source of "Unknown lines".
>>
>> "Unknown lines" in nested tests are optionally indented.
>>
>> Add "Unknown lines" items to differences between TAP & KTAP list
>>
>> Signed-off-by: Frank Rowand <frank.rowand@xxxxxxxx>
>> ---
>
> Please do not apply this version (v2). I was working off the KTAP specification
^^^^ TAP
> from a different github repo than I should have been referencing.

OK to proceed with this version of the patch. I was referencing the proposed
TAP version 14, which is in a different github repo than the TAP version 13
specification. Everything in this patch is consistent with TAP version 13,
as well as the proposed TAP version 14.

-Frank

>
> v3 upcoming.
>
> -Frank
>
>>
>> Changes since version 1
>> - Explain likely source of "Unknown lines"
>> - "Unknown line" in nested tests are optionally indented
>> - Add "Unknown lines" items to differences between TAP & KTAP list
>>
>> Documentation/dev-tools/ktap.rst | 24 ++++++++++++++++++------
>> 1 file changed, 18 insertions(+), 6 deletions(-)
>>
>> diff --git a/Documentation/dev-tools/ktap.rst b/Documentation/dev-tools/ktap.rst
>> index 878530cb9c27..9c40c94d3f12 100644
>> --- a/Documentation/dev-tools/ktap.rst
>> +++ b/Documentation/dev-tools/ktap.rst
>> @@ -1,8 +1,8 @@
>> .. SPDX-License-Identifier: GPL-2.0
>>
>> -========================================
>> -The Kernel Test Anything Protocol (KTAP)
>> -========================================
>> +===================================================
>> +The Kernel Test Anything Protocol (KTAP), version 1
>> +===================================================
>>
>> TAP, or the Test Anything Protocol is a format for specifying test results used
>> by a number of projects. It's website and specification are found at this `link
>> @@ -174,6 +174,13 @@ There may be lines within KTAP output that do not follow the format of one of
>> the four formats for lines described above. This is allowed, however, they will
>> not influence the status of the tests.
>>
>> +This is an important difference from TAP. Kernel tests may print messages
>> +to the system console or a log file. Both of these destinations may contain
>> +messages either from unrelated kernel or userspace activity, or kernel
>> +messages from non-test code that is invoked by the test. The kernel code
>> +invoked by the test likely is not aware that a test is in progress and
>> +thus can not print the message as a diagnostic message.
>> +
>> Nested tests
>> ------------
>>
>> @@ -186,10 +193,13 @@ starting with another KTAP version line and test plan, and end with the overall
>> result. If one of the subtests fail, for example, the parent test should also
>> fail.
>>
>> -Additionally, all result lines in a subtest should be indented. One level of
>> +Additionally, all lines in a subtest should be indented. One level of
>> indentation is two spaces: " ". The indentation should begin at the version
>> line and should end before the parent test's result line.
>>
>> +"Unknown lines" are not considered to be lines in a subtest and thus are
>> +allowed to be either indented or not indented.
>> +
>> An example of a test with two nested subtests:
>>
>> .. code-block::
>> @@ -225,9 +235,11 @@ Major differences between TAP and KTAP
>> --------------------------------------
>>
>> Note the major differences between the TAP and KTAP specification:
>> -- yaml and json are not recommended in diagnostic messages
>> -- TODO directive not recognized
>> +- yaml and json are not recommended in KTAP diagnostic messages
>> +- TODO directive not recognized in KTAP
>> - KTAP allows for an arbitrary number of tests to be nested
>> +- TAP includes "Unknown lines" in the category of "Anything else"
>> +- TAP says "Unknown lines" are "incorrect; KTAP allows "Unknown lines"
>>
>> The TAP14 specification does permit nested tests, but instead of using another
>> nested version line, uses a line of the form
>>
>