3 # Wherein we ensure the INST_* and INSTALL* variables are set correctly
4 # when various PREFIX variables are set.
6 # Essentially, this test is a Makefile.PL.
9 if( $ENV{PERL_CORE} ) {
11 @INC = ('../lib', 'lib');
14 unshift @INC, 't/lib';
19 use Test::More tests => 24;
20 use MakeMaker::Test::Utils;
21 use ExtUtils::MakeMaker;
26 $ENV{PERL_CORE} ? chdir '../lib/ExtUtils/t' : chdir 't';
32 my $Makefile = makefile_name;
33 my $Curdir = File::Spec->curdir;
34 my $Updir = File::Spec->updir;
36 ok( chdir 'Big-Fat-Dummy', "chdir'd to Big-Fat-Dummy" ) ||
37 diag("chdir failed: $!");
39 my $stdout = tie *STDOUT, 'TieOut' or die;
40 my $mm = WriteMakefile(
41 NAME => 'Big::Fat::Dummy',
42 VERSION_FROM => 'lib/Big/Fat/Dummy.pm',
44 PERL_CORE => $ENV{PERL_CORE},
47 like( $stdout->read, qr{
48 Writing\ $Makefile\ for\ Big::Fat::Liar\n
49 Big::Fat::Liar's\ vars\n
51 INST_ARCHLIB\ =\ \S+\n
52 Writing\ $Makefile\ for\ Big::Fat::Dummy\n
57 isa_ok( $mm, 'ExtUtils::MakeMaker' );
59 is( $mm->{NAME}, 'Big::Fat::Dummy', 'NAME' );
60 is( $mm->{VERSION}, 0.01, 'VERSION' );
62 is( $mm->{PREFIX}, 'foo/bar', 'PREFIX' );
64 is( !!$mm->{PERL_CORE}, !!$ENV{PERL_CORE}, 'PERL_CORE' );
66 my($perl_src, $mm_perl_src);
67 if( $ENV{PERL_CORE} ) {
68 $perl_src = File::Spec->catdir($Updir, $Updir, $Updir, $Updir);
69 $perl_src = File::Spec->canonpath($perl_src);
70 $mm_perl_src = File::Spec->canonpath($mm->{PERL_SRC});
73 $mm_perl_src = $mm->{PERL_SRC};
76 is( $mm_perl_src, $perl_src, 'PERL_SRC' );
79 # Every INSTALL* variable must start with some PREFIX.
80 my @Perl_Install = qw(archlib privlib bin script
82 my @Site_Install = qw(sitearch sitelib sitebin
83 siteman1dir siteman3dir);
84 my @Vend_Install = qw(vendorarch vendorlib vendorbin
85 vendorman1dir vendorman3dir);
87 foreach my $var (@Perl_Install) {
88 like( $mm->{uc "install$var"}, qr/^\$\(PREFIX\)/, "PREFIX + $var" );
91 foreach my $var (@Site_Install) {
92 like( $mm->{uc "install$var"}, qr/^\$\(SITEPREFIX\)/,
93 "SITEPREFIX + $var" );
96 foreach my $var (@Vend_Install) {
97 like( $mm->{uc "install$var"}, qr/^\$\(VENDORPREFIX\)/,
98 "VENDORPREFIX + $var" );