This file contains testcases for parsing and serializing S-expressions and messages as defined in https://vt6.io/std/core/1.0/#section-2.
It is generated by parse-sexp.txt.pl.
Empty lines and comment lines starting with # are to be ignored.
Each other line has one of the following formats:
test <arg>starts a new testcase. The<arg>is the message to parse. It may contain 2-digit hexadecimal escape sequences to encode arbitrary bytes, esp. ASCII control characters, e.g.\x0Afor NL.ok <arg>indicates that the current testcase is a valid message. The test MUST fail if the implementation produces an error while parsing this message The<arg>is a pretty-printed representation of an equivalent message with no superfluous whitespace, except for one space between each element of an S-expression. Implementations MUST check that parsing this string succeeds and produces a message that is semantically equivalent to the one that was parsed in this testcase. Implementations that can serialize messages SHOULD check whether they produce the same string when serializing the message that was parsed in this testcase.error <offset> <msg>indicates that the current testcase is an invalid message. The test MUST fail if the implementation produces no error while parsing this message. The first argument<offset>indicates at which byte offset the parse error occurred. The test SHOULD check whether it reports the same error location. The<argument>is a human-readable error message indicating the reason while this testcase fails to parse or validate. The test SHOULD check whether it produces the same (or an equivalent) error message.
This file contains testcases for capability negotiation using the want and have messages as defined in https://vt6.io/std/core/1.0/#section-4.
This testcase only applies to server implementations.
Empty lines and comment lines starting with # are to be ignored.
Each other line has one of the following formats:
- A line containing a string representation of a
wantmessage means that, as part of the current testcase, this message shall be sent to the server being tested. - A line containing a string representation of any other message means that the test MUST fail if the server being tested does not send this message at this point. As a special rule, the letter
Xin the stringcore1.Xoccurring anywhere in the message is a placeholder for the minor version of core1 supported by the server. ---ends the current testcase and starts a new one. Each testcase shall behave as if it is happening on a separate fresh server connection.
The test MUST also fail if the server sends any messages that are not mentioned in the testcase.
As also indicated in the comments in the file, the testcases reference certain modules and capabilities that are only defined inside the testcases:
- The server SHALL always agree to using the
conftest1module with minor version 3. - The server SHALL always agree to using the
conftest1.acceptablecapability. - The server SHALL NOT agree to using the
conftest1.unacceptablecapability. - The server SHALL NOT agree to using the
conftest2module.