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/
>