On 01/09/07, Ovid <[EMAIL PROTECTED]> wrote: > Hi all, > > Please read and comment on this. Many folks ignore these emails, but > we're talking about the new version of TAP here! Feedback is > important. > > Schwern: you're specifically copied on this as you maintain > Test::Simple. If we get this working, how would you feel about a patch > to Test::Simple that makes this automatically incorporated into new > test suites which upgrade Test::Simple? The obvious problem is that > this would create a dependency on TAP::Diagnostics (which I'm hoping > will have no non-core dependencies and work on Perl back to 5.005.) It > could also be included with Test::Simple as Test::Diagnostics, if you > prefer. > > Here's what I currently have, based on thoughts from Adrian Howard and > Schwern, Andy Armstrong and my own imagination: > > A stub module named "TAP::Diagnostics". I currently have three poorly > named functions. > > is_new_tap() > > The author of a test module can call this to find out if new-style TAP > diagnostics are supported. This is done internally by checking the > TAP_VERSION environment variable. This might get internalized in the > following two functions (though it shouldn't matter if indented YAML is > encountered by older TAP parsers. It just means that running tests in > verbose mode will spit out more info). > > diagnostic( { > found => $found, # can be stand-alone > wanted => $wanted, # must always be present with 'found' > display => $display, # optional human-readable presentation > extra => $extra, # anything else. Useful for custom harnesses > meta => 0, > } );
[resending, I forgot reply-all last time] How does this info get out into the stream. I presume it's not through Test::Builder->diag() otherwise it would have "#"s prepended. I ask because Test::Tester tries as much as possible to deal with the raw data _before_ it has been serialised. So if I get around to adding support for the fancy new diagnostics it would be really nice to have access to hashref and not have to deal with the YAML at all, F > The 'meta' information defaults to true but can be suppressed. > Currently this allows the line number and filename to be inserted into > the TAP. > > meta() > > This spits out meta informaton. Currently looks like this: > > --- > executable: perl > inc: > - lib > - t/lib > - /System/Library/Perl/5.8.6/darwin-thread-multi-2level > - /System/Library/Perl/5.8.6 > - /Library/Perl/5.8.6/darwin-thread-multi-2level > - /Library/Perl/5.8.6 > - /Library/Perl > - /Network/Library/Perl/5.8.6/darwin-thread-multi-2level > - /Network/Library/Perl/5.8.6 > - /Network/Library/Perl > - /System/Library/Perl/Extras/5.8.6/darwin-thread-multi-2level > - /System/Library/Perl/Extras/5.8.6 > - /Library/Perl/5.8.1 > - . > os: darwin > perl: 5.008006 > tap_version: 13 > ... > > Some of that is Perl-specific and therefore is wrong. However, it can > be very useful for debugging information. > > Thoughts? > > Cheers, > Ovid > > -- > Buy the book - http://www.oreilly.com/catalog/perlhks/ > Perl and CGI - http://users.easystreet.com/ovid/cgi_course/ > Personal blog - http://publius-ovidius.livejournal.com/ > Tech blog - http://use.perl.org/~Ovid/journal/ >