There are a number of issues in the parrot distribution that deviate
from assumptions about a how a "normal" CPAN distribution behaves and
those cause CPAN::Reporter's heuristics to mis-grade it.

It gets a PASS because it looks like the distribution has a recursive
Makefile.PL (ext/Parrot-Embed/Makefile.PL), so we can't easily
disambiguate the test harness output and instead rely on the exit code
only -- and parrot uses a custom harness program (t/harness) that
doesn't return a non-zero exit code for failing tests.  (I.e. "make
test" has exit code 0 even with failing tests.)

So -- things that CPAN::Reporter could do:

* tighten the check for recursive Makefile.PL to only include the
first level of sub-directories below the main one

* in the case of a recursive Makefile.PL, parse the output anyway and
do something smart.

There was a reason that I avoided the second approach when dealing
with recursive Makefile.PL's, but I don't recall exactly what it is,
now.  CPAN::Reporter parses the output in reverse order of lines
looking for a Test::Harness result line and maybe I didn't want to
risk scanning all of the test output in case some distribution's test
output happened to resemble Test::Harness output.  That's a little
less risky with the newer Test::Harness that has a single, well
defined format for output.

On the other hand, I don't really think we should be testing parrot
with CPAN Testers anyway, so this isn't a high priority for me to fix.
 I'm willing to do the first option I gave, above, because it's simple
and should break anything else.  (Unless someone convinces me it's a
bad idea).

-- David



On Sat, Oct 25, 2008 at 4:23 AM, Andreas J. Koenig
<[EMAIL PROTECTED]> wrote:
> (CC'd to testers-discuss, maybe somebody has some insight?)
>
> Hi David,
>
> it looks like a bug in CPAN::Reporter to me (please make your mail reader 
> wide):
>
> % /home/src/perl/repoperls/installed-perls/*/p*/[EMAIL PROTECTED]/bin/perl -I 
> lib bin/ctgetreports --q meta:writer --q meta:from --q meta:perl --q 
> qr:"(Failed test.*)" --ctformat=yaml --vdistro=parrot-0.8.0 parrot |& grep 
> 'Failed test '
>  PASS  2485750 meta:writer[CPAN-Reporter-1.1702] 
> meta:from[andreas.koenig.gmwojprw] meta:[EMAIL PROTECTED] qr:(Failed 
> test.*)[Failed test 'pasm_output_isnt: failure']
>  PASS  2473167 meta:writer[CPAN-Reporter-1.1702] 
> meta:from[andreas.koenig.gmwojprw] meta:[EMAIL PROTECTED] qr:(Failed 
> test.*)[Failed test 'soup to nuts']
>  PASS  2472586 meta:writer[CPAN-Reporter-1.1702] 
> meta:from[andreas.koenig.gmwojprw] meta:perl[5.8.7] qr:(Failed test.*)[Failed 
> test 'pasm_output_isnt: failure']
>  PASS  2472469 meta:writer[CPAN-Reporter-1.1702] 
> meta:from[andreas.koenig.gmwojprw] meta:perl[5.8.8] qr:(Failed test.*)[Failed 
> test 'pasm_output_isnt: failure']
>  PASS  2472396 meta:writer[CPAN-Reporter-1.1702] 
> meta:from[andreas.koenig.gmwojprw] meta:[EMAIL PROTECTED] qr:(Failed 
> test.*)[Failed test 'pasm_output_isnt: failure']
>  PASS  2472319 meta:writer[CPAN-Reporter-1.1702] 
> meta:from[andreas.koenig.gmwojprw] meta:perl[5.10.0] qr:(Failed 
> test.*)[Failed test 'pasm_output_isnt: failure']
>  PASS  2472246 meta:writer[CPAN-Reporter-1.1702] 
> meta:from[andreas.koenig.gmwojprw] meta:[EMAIL PROTECTED] qr:(Failed 
> test.*)[Failed test 'soup to nuts']
>  PASS  2472202 meta:writer[CPAN-Reporter-1.1702] 
> meta:from[andreas.koenig.gmwojprw] meta:perl[5.10.0] qr:(Failed 
> test.*)[Failed test 'pasm_output_isnt: failure']
>  PASS  2471971 meta:writer[CPAN-Reporter-1.1702] meta:from[imacat] 
> meta:perl[5.10.0] qr:(Failed test.*)[Failed test 'pasm_output_isnt: failure']
>
>
> What you see here is that all my reports and one from imacat reported a PASS 
> but the output of the test contained "Failed test '....'".
>
> When reading these reports from top to bottom I find no clue why this 
> happens. Do you?
>
> --
> andreas
>

Reply via email to