1package MakeMaker::Test::Setup::BFD; 2 3@ISA = qw(Exporter); 4require Exporter; 5@EXPORT = qw(setup_recurs teardown_recurs); 6 7use strict; 8use File::Path; 9use File::Basename; 10use MakeMaker::Test::Utils; 11 12my $Is_VMS = $^O eq 'VMS'; 13 14my %Files = ( 15 'Big-Dummy/lib/Big/Dummy.pm' => <<'END', 16package Big::Dummy; 17 18$VERSION = 0.01; 19 20=head1 NAME 21 22Big::Dummy - Try "our" hot dog's 23 24=cut 25 261; 27END 28 29 'Big-Dummy/Makefile.PL' => <<'END', 30use ExtUtils::MakeMaker; 31 32# This will interfere with the PREREQ_PRINT tests. 33printf "Current package is: %s\n", __PACKAGE__ unless "@ARGV" =~ /PREREQ/; 34 35WriteMakefile( 36 NAME => 'Big::Dummy', 37 VERSION_FROM => 'lib/Big/Dummy.pm', 38 EXE_FILES => [qw(bin/program)], 39 PREREQ_PM => { strict => 0 }, 40 ABSTRACT_FROM => 'lib/Big/Dummy.pm', 41 AUTHOR => 'Michael G Schwern <schwern@pobox.com>', 42); 43END 44 45 'Big-Dummy/bin/program' => <<'END', 46#!/usr/bin/perl -w 47 48=head1 NAME 49 50program - this is a program 51 52=cut 53 541; 55END 56 57 'Big-Dummy/t/compile.t' => <<'END', 58print "1..2\n"; 59 60print eval "use Big::Dummy; 1;" ? "ok 1\n" : "not ok 1\n"; 61print "ok 2 - TEST_VERBOSE\n"; 62END 63 64 'Big-Dummy/Liar/t/sanity.t' => <<'END', 65print "1..3\n"; 66 67print eval "use Big::Dummy; 1;" ? "ok 1\n" : "not ok 1\n"; 68print eval "use Big::Liar; 1;" ? "ok 2\n" : "not ok 2\n"; 69print "ok 3 - TEST_VERBOSE\n"; 70END 71 72 'Big-Dummy/Liar/lib/Big/Liar.pm' => <<'END', 73package Big::Liar; 74 75$VERSION = 0.01; 76 771; 78END 79 80 'Big-Dummy/Liar/Makefile.PL' => <<'END', 81use ExtUtils::MakeMaker; 82 83my $mm = WriteMakefile( 84 NAME => 'Big::Liar', 85 VERSION_FROM => 'lib/Big/Liar.pm', 86 _KEEP_AFTER_FLUSH => 1 87 ); 88 89print "Big::Liar's vars\n"; 90foreach my $key (qw(INST_LIB INST_ARCHLIB)) { 91 print "$key = $mm->{$key}\n"; 92} 93END 94 95 ); 96 97 98sub setup_recurs { 99 setup_mm_test_root(); 100 chdir 'MM_TEST_ROOT:[t]' if $Is_VMS; 101 102 while(my($file, $text) = each %Files) { 103 # Convert to a relative, native file path. 104 $file = File::Spec->catfile(File::Spec->curdir, split m{\/}, $file); 105 106 my $dir = dirname($file); 107 mkpath $dir; 108 open(FILE, ">$file") || die "Can't create $file: $!"; 109 print FILE $text; 110 close FILE; 111 } 112 113 return 1; 114} 115 116sub teardown_recurs { 117 foreach my $file (keys %Files) { 118 my $dir = dirname($file); 119 if( -e $dir ) { 120 rmtree($dir) || return; 121 } 122 } 123 return 1; 124} 125 126 1271; 128