#!/usr/bin/perl -w
use strict;
use lib 't/lib';
use Test::More tests => 4;
use Module::Info;
my $baz = Module::Info->new_from_module( 'Baz' );
my $bar = Module::Info->new_from_module( 'Foo' );
SKIP: {
skip "Only works on 5.6.1 and up.", 4 unless $] >= 5.006001;
# Bar.pm should compile correctly
$bar->die_on_compilation_error(1);
eval {
$bar->packages_inside;
};
ok( !$@, "does not die if compilation is ok" );
diag( $@ ) if $@;
{
# suppress warning message
local $SIG{__WARN__} = sub { };
eval {
$baz->packages_inside;
};
ok( !$@, "does not die unless die_on_compilation_error is set" );
diag( $@ ) if $@;
}
{
my $did_warn;
local $SIG{__WARN__} = sub { $did_warn = 1 };
$baz->die_on_compilation_error(1);
eval {
$baz->packages_inside;
};
ok( $@, "dies if die_on_compilation_error is set" );
ok( !$did_warn, "does not warn if die_on_compilation_error is set" );
}
}