|Date:||Fri, 5 Jun 2015 15:52:59 -0700|
|To:||<bug-TAP [...] rt.cpan.org>|
|From:||"Arthur Schwarz" <aschwarz1309 [...] att.net>|
These comments are made with respect to the TAP version 13 Specification Please don't take the comments amiss. I intend to state them succinctly without apology or caveat. This will, unfortunately, make them appear as a criticism and that my view should prevail. Neither viewpoints are correct. All of the comments can be viewed as "I'd like to see ...", or "gosh darn, it would be nice if ...". A clear exposition of the syntax for TAP statements should precede their use and explanation. This will reduce ambiguity in interpretation. That having been said, I think an interpretation of the current syntax is: ^1..N[ # comment] ^1..0[ # comment] ^ok[ [N [comment ][# directiver [comment]] ^not ok[ [N [comment ][# directiver [comment]] ^Bail out! ^#[ Diagnostic] ^ +--- ^ *... ^ YAML comment where ^ means the beginning of the line ' ' is exactly on blank [ ] are optional entries + one or more N a test line number test line comments can not have an embedded # I would be nice if this syntax was broadened ^<ws>*1..N[<ws>+comment] ^<ws>*1..0[<ws>+comment] ^<ws>*ok[<ws>+N[[<ws>+comment] | [<ws>+#[<ws>*comment]]] ^<ws>*not ok[<ws>+N[<ws>+comment]] ^<ws>*Bail out![<ws>*comment] ^<ws>*#<ws>*Diagnostic ^<ws>*--- ^<ws>*... ^<ws>*YAML comment where <ws> is ' ' or \t * is 0 or more + one or more | is alternation (this or that) (I can provide syntax equations if this suits your purposes). There are several reasons this alternate may be desirable: 1: Checking for TAP Protocol compliance is burdensome. Every violation of a spacing requirement makes the statement incorrect. This is needless if the standard is changed so that if it says that if one <ws> is valid then many can be used. 2: Requiring that TAP statement begin in column one is Burdensome to check and has no useful functionality. 3: Allowing both a test line and a Directive comment seems Counter-intuitive. It seems more sensible to either have a comment followed by a Directive, or a Directive followed by a comment, but not both. 3: The requirement that one or more <ws> characters follow a Directive prefix is unnecessary (but attractive). In the 'new' syntax the following tests are acceptable. 1..N ok not ok 123 # Diagnostic # Diagnostic ok comment ok 123 # SKIP comment --- jabbering YAML YAML ... ok N comment # SKIP is not acceptable The use and placement of 1..N needs to be better addressed. 1: If 1..N occurs before the test lines then ok 123 can be verified. 2: If 1..N follows all test line then ok 123 can not be check using a single pass analyzer. Output results have to be deferred. 3: If 1..N is missing then no checks are possible. This can't be determined until all test lines are input since 1..N may be at the end of the TAP Protocol file. Building an analyzer becomes more difficult 1..N can be missing or at the end of the file. If deference is to be given to the TAP output process then maybe 1..N should be removed as a requirement. Some words should be stated concering the placement of Diagnostics. For example: Can zero or more Diagnostics precede the first test line Can zero or more Diagnostics follow the last test line Is there a relationship between a Diagnosic and a preceding or following test line which has to be observed. The same comments apply to YAML code. There are no examples of an inline YAML block. In particular the syntax specifies that the only format for a YAML block is: ssss--- and .../ Do you mean: /^[[:blank:]]+---/ and /^[[:blank:]]+.../ The meaning of TODO has not been stated. My interpretation is that it is a SKIP. The use of blank lines is not stated. I think that the current specification is very clear (except TODO) and simple. I am building a little TAP converter and, for the most part, have little difficulty. But, protocol checking would be easier if some of the 'start on column' one conditions where lifted, and a better explanation of 1..N was included. thanks art The failure of the past is the challenge of the present and the success of the future.