App-find2perl
view release on metacpan or search on metacpan
t/00-compile.t view on Meta::CPAN
open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!";
my @warnings;
for my $lib (@module_files)
{
# see L<perlfaq8/How can I capture STDERR from an external command?>
my $stderr = IO::Handle->new;
my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', "require q[$lib]");
binmode $stderr, ':crlf' if $^O eq 'MSWin32';
my @_warnings = <$stderr>;
waitpid($pid, 0);
is($?, 0, "$lib loaded ok");
shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/
and not eval { require blib; blib->VERSION('1.01') };
if (@_warnings)
{
warn @_warnings;
t/00-compile.t view on Meta::CPAN
{ SKIP: {
open my $fh, '<', $file or warn("Unable to open $file: $!"), next;
my $line = <$fh>;
close $fh and skip("$file isn't perl", 1) unless $line =~ /^#!\s*(?:\S*perl\S*)((?:\s+-\w*)*)(?:\s*#.*)?$/;
my @flags = $1 ? split(' ', $1) : ();
my $stderr = IO::Handle->new;
my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, @flags, '-c', $file);
binmode $stderr, ':crlf' if $^O eq 'MSWin32';
my @_warnings = <$stderr>;
waitpid($pid, 0);
is($?, 0, "$file compiled ok");
shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/
and not eval { require blib; blib->VERSION('1.01') };
# in older perls, -c output is simply the file portion of the path being tested
if (@_warnings = grep { !/\bsyntax OK$/ }
grep { chomp; $_ ne (File::Spec->splitpath($file))[2] } @_warnings)
t/find2perl.t view on Meta::CPAN
pop @test_files if $^O eq 'msys';
# make some files to search
for my $spec (@test_files) {
my $file = catfile($tmpdir, split '/', $spec->{name});
my $type = $spec->{type} || "f";
if ($type eq "f") {
open my $fh, ">", $file
or die "Cannot create test file $file: $!";
if ($spec->{content}) {
binmode $fh;
print $fh $spec->{content};
}
close $fh
or die "Cannot close $file: $!";
}
elsif ($type eq "d") {
mkdir $file
or die "Cannot create test directory $file: $!";
}
elsif ($type eq "l") {
t/find2perl.t view on Meta::CPAN
remove_tree($tmpdir) if defined $tmpdir;
remove_tree($script) if defined $script;
}
sub runperl {
my %args = @_;
my @args = find_perl_interpreter();
push @args, $args{progfile} if $args{progfile};
push @args, @{ $args{args} } if $args{args};
my $pid = open2(my ($in, $out), @args) or die "Can't open2: $!";
binmode $in, ':crlf' if $^O eq 'MSWin32';
my $ret = do { local $/; <$in> };
waitpid $pid, 0;
return $ret;
}
( run in 0.235 second using v1.01-cache-2.11-cpan-eab888a1d7d )