1#!/usr/bin/perl -w 2 3BEGIN { 4 if( $ENV{PERL_CORE} ) { 5 @INC = ('../lib', 'lib'); 6 } 7 else { 8 unshift @INC, 't/lib'; 9 } 10} 11chdir 't'; 12 13use strict; 14use Test::More tests => 9; 15use File::Basename; 16use File::Path; 17use File::Spec; 18 19if( $^O eq 'VMS' ) { 20 # On older systems we might exceed the 8-level directory depth limit 21 # imposed by RMS. We get around this with a rooted logical, but we 22 # can't create logical names with attributes in Perl, so we do it 23 # in a DCL subprocess and put it in the job table so the parent sees it. 24 open( BFDTMP, '>bfdtesttmp.com' ) || die "Error creating command file; $!"; 25 print BFDTMP <<'COMMAND'; 26$ BFD_TEST_ROOT = F$PARSE("SYS$DISK:[-]",,,,"NO_CONCEAL")-".][000000"-"]["-"].;"+".]" 27$ DEFINE/JOB/NOLOG/TRANSLATION=CONCEALED BFD_TEST_ROOT 'BFD_TEST_ROOT' 28COMMAND 29 close BFDTMP; 30 31 system '@bfdtesttmp.com'; 32 1 while unlink 'bfdtesttmp.com'; 33} 34 35 36my %Files = ( 37 'Big-Dummy/lib/Big/Dummy.pm' => <<'END', 38package Big::Dummy; 39 40$VERSION = 0.01; 41 42=head1 NAME 43 44Big::Dummy - Try "our" hot dog's 45 46=cut 47 481; 49END 50 51 'Big-Dummy/Makefile.PL' => <<'END', 52use ExtUtils::MakeMaker; 53 54# This will interfere with the PREREQ_PRINT tests. 55printf "Current package is: %s\n", __PACKAGE__ unless "@ARGV" =~ /PREREQ/; 56 57WriteMakefile( 58 NAME => 'Big::Dummy', 59 VERSION_FROM => 'lib/Big/Dummy.pm', 60 PREREQ_PM => { strict => 0 }, 61 ABSTRACT_FROM => 'lib/Big/Dummy.pm', 62 AUTHOR => 'Michael G Schwern <schwern@pobox.com>', 63); 64END 65 66 'Big-Dummy/t/compile.t' => <<'END', 67print "1..2\n"; 68 69print eval "use Big::Dummy; 1;" ? "ok 1\n" : "not ok 1\n"; 70print "ok 2 - TEST_VERBOSE\n"; 71END 72 73 'Big-Dummy/Liar/t/sanity.t' => <<'END', 74print "1..3\n"; 75 76print eval "use Big::Dummy; 1;" ? "ok 1\n" : "not ok 1\n"; 77print eval "use Big::Liar; 1;" ? "ok 2\n" : "not ok 2\n"; 78print "ok 3 - TEST_VERBOSE\n"; 79END 80 81 'Big-Dummy/Liar/lib/Big/Liar.pm' => <<'END', 82package Big::Liar; 83 84$VERSION = 0.01; 85 861; 87END 88 89 'Big-Dummy/Liar/Makefile.PL' => <<'END', 90use ExtUtils::MakeMaker; 91 92my $mm = WriteMakefile( 93 NAME => 'Big::Liar', 94 VERSION_FROM => 'lib/Big/Liar.pm', 95 _KEEP_AFTER_FLUSH => 1 96 ); 97 98print "Big::Liar's vars\n"; 99foreach my $key (qw(INST_LIB INST_ARCHLIB)) { 100 print "$key = $mm->{$key}\n"; 101} 102END 103 104 'Problem-Module/Makefile.PL' => <<'END', 105use ExtUtils::MakeMaker; 106 107WriteMakefile( 108 NAME => 'Problem::Module', 109); 110END 111 112 'Problem-Module/subdir/Makefile.PL' => <<'END', 113printf "\@INC %s .\n", (grep { $_ eq '.' } @INC) ? "has" : "doesn't have"; 114 115warn "I think I'm going to be sick\n"; 116die "YYYAaaaakkk\n"; 117END 118 119 ); 120 121while(my($file, $text) = each %Files) { 122 # Convert to a relative, native file path. 123 $file = File::Spec->catfile(File::Spec->curdir, split m{\/}, $file); 124 125 my $dir = dirname($file); 126 mkpath $dir; 127 open(FILE, ">$file"); 128 print FILE $text; 129 close FILE; 130 131 ok( -e $file, "$file created" ); 132} 133 134 135pass("Setup done"); 136