[tap-l] Nested TAP

Andy Armstrong andy at hexten.net
Mon Apr 14 20:56:40 UTC 2008


On 14 Apr 2008, at 20:20, Ovid wrote:
> If the TAP consumer (Test::Harness in our case) doesn't say that it
> understands TAP v13, the producer has *no* way of downgrading the  
> above
> TAP and would be forced to abort -- unless it had a minimal parser
> (like my 40 line example which can be made even shorter).  Thus, tests
> which *should* pass will now fail.  That violates the entire spirit of
> TAP.


I'm lost now :)

Am I right in thinking that the principal differences between the two  
approaches can be summarised thusly?

Your approach: generated TAP is automatically backwards compatible,  
producer needs a minimal parser or additional logic to keep track of  
summary results, producer doesn't need to know the TAP version  
supported by consumer.

My approach: nested TAP isn't b/c, simpleminded producers (no parser),  
producer can downgrade iff it knows the TAP version supported by  
consumer.

I like the idea of not breaking backwards compatibility /now/ - but I  
don't like the idea of living with backwards compatibility baggage  
forever.

Both seem like reasonably approaches. I think one's preference would  
depend on the relative values attached to backwards compatibility and  
future simplicity. I think future simplicity wins in the long tail :)

Another point in favour of your suggestion: there's no need for a  
producer to contain a parser unless it aggregates tests. If it's just  
generating nested TAP it can probably generate the summary result  
based on its own bookkeeping.

-- 
Andy Armstrong, Hexten






More information about the tap-l mailing list