diff --git a/everything.stor b/everything.stor index 186bb05..086ec31 100644 Binary files a/everything.stor and b/everything.stor differ diff --git a/lib/TestCpanInc.pm b/lib/TestCpanInc.pm index 8757ae6..24d9b2e 100644 --- a/lib/TestCpanInc.pm +++ b/lib/TestCpanInc.pm @@ -8,7 +8,7 @@ use Data::Dumper; use List::Util qw/uniq/; use IPC::Run qw/run timeout harness/; use Module; -use Time::HiRes qw/sleep/; +use Time::HiRes qw/sleep time/; our $perlbrew_env = 'blead'; @@ -57,21 +57,29 @@ sub run_cpanm { my $out; my $in=''; - my $h = harness \@cmd, '<', \$in, '>&', \$out, timeout(10*60); # timeout after 10 minutes + $|++; + + my $timeout = 10*60; + + my $h = harness \@cmd, '<', \$in, '>&', \$out, timeout($timeout); # timeout after 10 minutes eval { $h->start(); - + my $st = time(); while($h->pumpable()) { # still getting output - $h->pump(); + $h->pump_nb(); if (length($out) > 20*1024*1024) { # 20 meg limit on output die "Output too long. Failing build\n"; } + sleep(0.1); + printf "%03.03f %08d\r", time()-$st, length($out); + die "Timeout" if time()-$st > $timeout; } $h->finish(); }; my $err = $@; - $h->finish() if $err; + print " "x20, "\r"; + eval {$h->finish()} if $err; $h->kill_kill(); # reap all the kids my $exitcode = $err || $h->full_result(); diff --git a/modcache.stor b/modcache.stor index e3dcff1..0c02ed2 100644 Binary files a/modcache.stor and b/modcache.stor differ