diff --git a/test.pl b/test.pl index dd2de46..e82e16f 100755 --- a/test.pl +++ b/test.pl @@ -79,6 +79,7 @@ use autodie; use warnings; use Data::Dumper; use List::Util qw/uniq/; +use IPC::Run qw/run/; sub dep_order { my $module = shift; @@ -94,7 +95,46 @@ sub dep_order { return @orders; } +sub run_cpanm { + my ($module, $incstatus) = @_; + + $ENV{PERL_USE_UNSAFE_INC} = !!$incstatus; + my @cmd = (qw/perlbrew exec --with perlbot-inctest cpanm --reinstall --verbose/, $module); + + my $out; + run \@cmd, '>&', \$out; + + my $exitcode = $?; + if ($exitcode) { + print "command failed\n"; # TODO save output? + print $out; + } + + return ($exitcode, $out); +} + +sub test_module { + my $module = shift; + my ($ret, $noincout) = run_cpanm($module, 0); + + if ($ret) { + my ($ret2, $incout) = run_cpanm($module, 1); + + if (!$ret2) { + print ">>>>Module $module failed to build without UNSAFE INC\n"; + open(my $fh, ">", "logs/${$}_${module}_incfailure.log"); + print $fh $noincout; + } else { + print "<<<", "logs/${$}_${module}_genfailure.log"); + print $fh $incout; + } + } +} + my $foo = Module->new_module('Moose'); -$foo->print_deps(0, []); print Dumper([map {$_->name} uniq dep_order($foo)]); + +test_module('Clone');