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

Reply via email to