Blame xt/author/00-compile.t

Packit a89ea5
use 5.006;
Packit a89ea5
use strict;
Packit a89ea5
use warnings;
Packit a89ea5
Packit a89ea5
# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.058
Packit a89ea5
Packit a89ea5
use Test::More 0.94;
Packit a89ea5
Packit a89ea5
plan tests => 2;
Packit a89ea5
Packit a89ea5
my @module_files = (
Packit a89ea5
    'File/Temp.pm'
Packit a89ea5
);
Packit a89ea5
Packit a89ea5
Packit a89ea5
Packit a89ea5
# no fake home requested
Packit a89ea5
Packit a89ea5
my @switches = (
Packit a89ea5
    -d 'blib' ? '-Mblib' : '-Ilib',
Packit a89ea5
);
Packit a89ea5
Packit a89ea5
use File::Spec;
Packit a89ea5
use IPC::Open3;
Packit a89ea5
use IO::Handle;
Packit a89ea5
Packit a89ea5
open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!";
Packit a89ea5
Packit a89ea5
my @warnings;
Packit a89ea5
for my $lib (@module_files)
Packit a89ea5
{
Packit a89ea5
    # see L<perlfaq8/How can I capture STDERR from an external command?>
Packit a89ea5
    my $stderr = IO::Handle->new;
Packit a89ea5
Packit a89ea5
    diag('Running: ', join(', ', map { my $str = $_; $str =~ s/'/\\'/g; q{'} . $str . q{'} }
Packit a89ea5
            $^X, @switches, '-e', "require q[$lib]"))
Packit a89ea5
        if $ENV{PERL_COMPILE_TEST_DEBUG};
Packit a89ea5
Packit a89ea5
    my $pid = open3($stdin, '>&STDERR', $stderr, $^X, @switches, '-e', "require q[$lib]");
Packit a89ea5
    binmode $stderr, ':crlf' if $^O eq 'MSWin32';
Packit a89ea5
    my @_warnings = <$stderr>;
Packit a89ea5
    waitpid($pid, 0);
Packit a89ea5
    is($?, 0, "$lib loaded ok");
Packit a89ea5
Packit a89ea5
    shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/
Packit a89ea5
        and not eval { +require blib; blib->VERSION('1.01') };
Packit a89ea5
Packit a89ea5
    if (@_warnings)
Packit a89ea5
    {
Packit a89ea5
        warn @_warnings;
Packit a89ea5
        push @warnings, @_warnings;
Packit a89ea5
    }
Packit a89ea5
}
Packit a89ea5
Packit a89ea5
Packit a89ea5
Packit a89ea5
is(scalar(@warnings), 0, 'no warnings found')
Packit a89ea5
    or diag 'got warnings: ', explain(\@warnings);
Packit a89ea5
Packit a89ea5
BAIL_OUT("Compilation problems") if !Test::More->builder->is_passing;