On Friday 16 February 2007, Ovid wrote:
> Can anyone else comment on this?  I understand exactly where Shlomi is
> coming from and I know that he's wrong in his thoughts, but there is
> certainly a difference of opinion regarding 'correct' behavior.
>

Actually, I wasn't claiming the current behaviour of Test::Run and 
Test::Harness is the correct one. I only claimed that Test::Run behaves the 
same as T::H and that TAPx::Parser broke it in this respect.

> > I find it unlikely that my code differs in interpreation from
> > Test::Harness in
> > this regard. After all, my code is derived from Test::Harness, and I
> > don't
> > recall changing the tests inside t/test-harness.t. Furthermore, the
> > results
> > specification for the test for 'bignum' is the same in both places.
>
> I can understand that.  In this case, I'm not sure where Test::Harness
> goes wrong, but it's wrong.  After conversation with Schwern, it was
> determined that any tests run which are more than the 'planned' tests
> are 'not ok'.  I think Test::Harness is wrong in this regard and that's
> possibly part of the reason why the prove output is so strange.

Very well - I guess I agree with that. I'll wait until the new TAPx::Parser 
has a stable version on CPAN and modify the tests and behaviour of Test::Run 
accordingly while bumping the required version of TAPx::Parser to the new 
one. (Due to the incompatibility changes).

>
> > >   $ prove badplan
> > >   badplan...FAILED tests 3-4
> > >
> > >           Failed 2/2 tests, 0.00% okay
> > >   Failed Test Stat Wstat Total Fail  List of Failed
> > >   ------------------------------------------------------------
> > >   badplan                    2    2  3-4
> > >   Failed 1/1 test scripts. -2/2 subtests failed.
> > >   Files=1, Tests=2,  0 wallclock secs ( 0.01 cusr +  0.01 csys =
> >
> > 0.02
> >
> > > CPU)
> > >   Failed 1/1 test programs. -2/2 subtests failed.
>
> First it says that 2/2 failed and that 0.00% were OK and later says
> that -2/2 failed.  Both 2/2 and -2/2 are wrong, since 2/4 tests
> 'failed'.  2 tests were planned, 4 were run.  We don't have any way of
> knowing if the plan is wrong or if the final two tests were run in
> error.  Only a human looking at the code can determine this.  Thus, the
> 'prove' output is incorrect (and contradictory and non-sensical).

Yes, you're right.

>
> (Note:  this isn't meant to be a slam on Schwern or Andy Lester.
> They've both done great work with a code base which has evolved into a
> corner.)

Sure.

>
> > >   $ runtests badplan
> > >   badplan.... All 2 subtests passed
> > >
> > >   Test Summary Report
> > >   -------------------
> > >   badplan (Wstat: 0 Tests: 4 Failed: 2)
> > >     Failed tests:  3-4
> > >     Parse errors: Bad plan.  You planned 2 tests but ran 4.
> > >   Files=1, Tests=4,  0 wallclock secs ( 0.00 cusr +  0.00 csys =
> >
> > 0.00
> >
> > > CPU)
> > >
> > > That's much clearer.
>
> As pointed out, 'runtests' output is clearer, non-contradictory,
> documented, and tells the programmer what happened, unlike 'runprove'
> or 'prove'.  This is one case where I think that following the exact
> behavior of T::H and 'prove' is an error.

OK.

>
> > It does, but I still don't know how to emulate the Test::Harness
> > behaviour using the new TAPx::Parser API.
>
> Admittedly, I don't know your design goals, but I don't think you
> should emulate broken behavior.  You've done enough work on Test::Run
> that I suspect that fixing confusing output is not a bad thing.
>
> If you really want to emulate the behavior, check 'has_todo' and
> 'actual_ok' in TAPx::Parser::Result::Test.  Those might help.

No, that's OK - I'll change the behaviour.

>
> > And furthermore, I'm not sure I'll be
> > able to
> > rely on the new API until a stable version of TAPx::Parser 0.5x is
> > released,
>
> That's fair.  We're working on getting a stable release (there are
> enough changes that it might bump up to 0.6).
>
> Thanks again for pointing this out.  In writing more tests for it, I
> found a subtle bug with my implementation.  It won't fix your problem
> and might even make things worse.  (I was comparing
> $parser->tests_planned to $result->test_num -- which might be wrong if
> tests are misnumbered -- instead of to $parser->tests_run).
>

You're welcome.

Thanks and regards,

        Shlomi Fish

---------------------------------------------------------------------
Shlomi Fish      [EMAIL PROTECTED]
Homepage:        http://www.shlomifish.org/

Chuck Norris wrote a complete Perl 6 implementation in a day but then
destroyed all evidence with his bare hands, so no one will know his secrets.

Reply via email to