I've studied the failed Inline reports:
http://cpantesters.org/distro/I/Inline.html?grade=3&perlmat=2&patches=2&oncpan=2&distmat=3&perlver=ALL&osname=ALL&version=0.54
(I've also downloaded all reports with a YML saving script of mine,
attached)
Generally both Sisyphus versions fail to have prereqs,
both mine are ok with prereqs. I guess there must be a typo
in applying the patch, but I didn't find it in the diff.
If there's none we should revert
https://github.com/rurban/Inline/commit/f195ee259a0247f382b961fa38cdd20f41c25c54
Thanks for the meta, now I see that there *IS* a git repo! :)
This would have saved me a lot of time.
My 0.54_02: 7/203 FAIL
2x cygwin (tainted path)
3x MSWin (2x t/08taint.t 3, 1x t/10callback.t)
1x linux (tainted path)
cygwin:
http://cpantesters.org/cpan/report/7c925d40-6c79-1014-9006-7b9a8a727949
and http://cpantesters.org/cpan/report/9f28e1e2-6cd3-1014-bbd9-a74809b5a452
both fail because the tester has no make executable or make is not in
the tainted PATH. strange, because EUMM did work with make.
MSWin:
t/08taint.t 3
and a lot of uninitialized value $ENV{"MAKEFLAGS"} warnings. needs to be
fixed. MAKEFLAGS is GNU/BSD make specific.
one MSWin fails on t/10callback.t => 38 (no tests run)
http://cpantesters.org/cpan/report/b5f37d39-77fe-1014-82bb-0b2d93e8ee67
linux:
http://cpantesters.org/cpan/report/14ff7354-bc87-11e3-8740-3bc0f47782c0
The same Ryan Whitworth as with cygwin who fails to have make in his
tainted PATH.
So 4 problems still exist:
- need to exec make with tainted path in t/08taint.t
- protect against uninitialized value $ENV{"MAKEFLAGS"} (windows), fixed
with 0.54_03 already
- t/10callback.t error on windows (could be anything, like ccflags or
ldflags or libs)
- missing LICENSE (in meta and as file)
I propose I'll make a _04 version on github and cpan, which should pass
all tests, and then he can take it from there again.
#!/usr/bin/perl -w
use strict;
my $ver;
if (@ARGV) {
$ver = shift;
} elsif (-f 'Makefile') {
(undef,undef,$ver) = split(/ /,`grep "^VERSION = " Makefile`);
chomp $ver;
} else {
die 'Makefile or version argument missing'
}
my $dir = "t/reports/$ver";
die "wrong version or $dir missing"
unless -d $dir;
my $distname;
if (-f 'Makefile') {
(undef,undef,$distname) = split(/ /,`grep "^DISTNAME = " Makefile`);
chomp $distname;
} else {
$distname = 'B-C';
}
my $yaml;
# $wget =
`http://www.cpantesters.org/distro/I/Inline.html?grade=1&perlmat=1&patches=1&oncpan=2&distmat=2&perlver=ALL&osname=ALL&version=$ver`;
my $cache = "$dir/$distname.yaml";
if (-f $cache and -M _ < 1) {
local $/;
open my $fh, '<', $cache;
$yaml = <$fh>;
close $fh,
} else {
chdir $dir or die;
my $d = substr($distname,0,1);
$yaml = `wget -O- -q http://www.cpantesters.org/distro/$d/$distname.yaml`;
chdir '../../..';
die unless $yaml;
open my $fh, '>', $cache;
print $fh $yaml;
close $fh;
}
use YAML::XS;
use Data::Dumper;
use HTML::Entities;
# HTML::Entities::decode_entities
sub unescapeHTML {
my $string = shift;
# expanded version from CGI
$string=~ s[&(\S*?);]{
local $_ = $1;
/^amp$/i ? "&" :
/^quot$/i ? '"' :
/^gt$/i ? ">" :
/^lt$/i ? "<" :
/^Agrave$/i ? "Á" :
/^acirc$/i ? "â" :
/^ouml$/i ? "ö" :
/^uuml$/i ? "ü" :
/^auml$/i ? "ä" :
/^Ouml$/i ? "Ö" :
/^Uuml$/i ? "Ü" :
/^Auml$/i ? "Ä" :
/^#(\d+)$/ ? chr($1) :
/^#x([0-9a-f]+)$/i ? chr(hex($1)) :
$_
}gex;
return $string;
}
my $content = Load $yaml;
for my $e (@$content) {
if ($e->{version} eq $ver) {
print Dumper $e;
my $fn = "$dir/log.test-".$e->{osname}.$e->{osvers}."-".$e->{perl};
my $guid = $e->{guid};
sleep 0.3;
my $rpt = `wget -O- -q http://www.cpantesters.org/cpan/report/$guid`;
# check for DEBUGGING
if ($rpt =~ /ccflags[^\n]+ -DDEBUGGING.+?\n/sm) {
$fn .= 'd';
}
if ($e->{platform} !~ /thread/) {
$fn .= "-nt";
}
if (-e $fn) {
warn "Skipping $fn already exists\n";
} else {
$rpt =~ s/^.*<pre>\nFrom:/From/sm;
$rpt =~ s{<hr class="clear-contentunit" />.*$}{}s;
decode_entities($rpt);
# $rpt = unescapeHTML($rpt);
open my $fh, '>', $fn;
print $fh $rpt;
close $fh;
}
}
}