MakeMaker 5.55_03 -> 5.90_01
[p5sagit/p5-mst-13.2.git] / lib / ExtUtils / t / INST_PREFIX.t
CommitLineData
5c161494 1#!/usr/bin/perl -w
2
3# Wherein we ensure the INST_* and INSTALL* variables are set correctly
4# when various PREFIX variables are set.
5#
6# Essentially, this test is a Makefile.PL.
7
8BEGIN {
9 if( $ENV{PERL_CORE} ) {
10 chdir 't' if -d 't';
11 @INC = ('../lib', 'lib');
12 }
13 else {
14 unshift @INC, 't/lib';
15 }
16}
17
18use strict;
19use Test::More tests => 24;
20use MakeMaker::Test::Utils;
21use ExtUtils::MakeMaker;
22use File::Spec;
23use TieOut;
24use Config;
25
26$ENV{PERL_CORE} ? chdir '../lib/ExtUtils/t' : chdir 't';
27
28perl_lib;
29
30$| = 1;
31
32my $Makefile = makefile_name;
33my $Curdir = File::Spec->curdir;
34my $Updir = File::Spec->updir;
35
36ok( chdir 'Big-Fat-Dummy', "chdir'd to Big-Fat-Dummy" ) ||
37 diag("chdir failed: $!");
38
39my $stdout = tie *STDOUT, 'TieOut' or die;
40my $mm = WriteMakefile(
41 NAME => 'Big::Fat::Dummy',
42 VERSION_FROM => 'lib/Big/Fat/Dummy.pm',
43 PREREQ_PM => {},
44 PERL_CORE => $ENV{PERL_CORE},
45 PREFIX => 'foo/bar',
46);
47like( $stdout->read, qr{
48 Writing\ $Makefile\ for\ Big::Fat::Liar\n
49 Big::Fat::Liar's\ vars\n
50 INST_LIB\ =\ \S+\n
51 INST_ARCHLIB\ =\ \S+\n
52 Writing\ $Makefile\ for\ Big::Fat::Dummy\n
53}x );
54undef $stdout;
55untie *STDOUT;
56
57isa_ok( $mm, 'ExtUtils::MakeMaker' );
58
59is( $mm->{NAME}, 'Big::Fat::Dummy', 'NAME' );
60is( $mm->{VERSION}, 0.01, 'VERSION' );
61
62is( $mm->{PREFIX}, 'foo/bar', 'PREFIX' );
63
64is( !!$mm->{PERL_CORE}, !!$ENV{PERL_CORE}, 'PERL_CORE' );
65
66my($perl_src, $mm_perl_src);
67if( $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});
71}
72else {
73 $mm_perl_src = $mm->{PERL_SRC};
74}
75
76is( $mm_perl_src, $perl_src, 'PERL_SRC' );
77
78
79# Every INSTALL* variable must start with some PREFIX.
80my @Perl_Install = qw(archlib privlib bin script
81 man1dir man3dir);
82my @Site_Install = qw(sitearch sitelib sitebin
83 siteman1dir siteman3dir);
84my @Vend_Install = qw(vendorarch vendorlib vendorbin
85 vendorman1dir vendorman3dir);
86
87foreach my $var (@Perl_Install) {
88 like( $mm->{uc "install$var"}, qr/^\$\(PREFIX\)/, "PREFIX + $var" );
89}
90
91foreach my $var (@Site_Install) {
92 like( $mm->{uc "install$var"}, qr/^\$\(SITEPREFIX\)/,
93 "SITEPREFIX + $var" );
94}
95
96foreach my $var (@Vend_Install) {
97 like( $mm->{uc "install$var"}, qr/^\$\(VENDORPREFIX\)/,
98 "VENDORPREFIX + $var" );
99}