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;
    }
  }
}

Reply via email to