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.