1# Test problems in Makefile.PL's and hint files. 2 3BEGIN { 4 if( $ENV{PERL_CORE} ) { 5 chdir 't' if -d 't'; 6 @INC = ('../lib', 'lib'); 7 } 8 else { 9 unshift @INC, 't/lib'; 10 } 11} 12chdir 't'; 13 14use strict; 15use Test::More tests => 6; 16use ExtUtils::MM; 17use MakeMaker::Test::Setup::Problem; 18use TieOut; 19 20my $MM = bless { DIR => ['subdir'] }, 'MM'; 21 22ok( setup_recurs(), 'setup' ); 23END { 24 ok( chdir File::Spec->updir ); 25 ok( teardown_recurs(), 'teardown' ); 26} 27 28ok( chdir 'Problem-Module', "chdir'd to Problem-Module" ) || 29 diag("chdir failed: $!"); 30 31 32# Make sure when Makefile.PL's break, they issue a warning. 33# Also make sure Makefile.PL's in subdirs still have '.' in @INC. 34{ 35 my $stdout = tie *STDOUT, 'TieOut' or die; 36 37 my $warning = ''; 38 local $SIG{__WARN__} = sub { $warning = join '', @_ }; 39 eval { $MM->eval_in_subdirs; }; 40 41 is( $stdout->read, qq{\@INC has .\n}, 'cwd in @INC' ); 42 like( $@, 43 qr{^ERROR from evaluation of .*subdir.*Makefile.PL: YYYAaaaakkk}, 44 'Makefile.PL death in subdir warns' ); 45 46 untie *STDOUT; 47} 48