ExtUtils::MakeMaker 6.55_02
[p5sagit/p5-mst-13.2.git] / lib / ExtUtils / t / INSTALL_BASE.t
1 #!/usr/bin/perl -w
2
3 # Tests INSTALL_BASE
4
5 BEGIN {
6     if( $ENV{PERL_CORE} ) {
7         chdir 't' if -d 't';
8         @INC = ('../lib', 'lib');
9     }
10     else {
11         unshift @INC, 't/lib';
12     }
13 }
14
15 use strict;
16 use File::Path;
17 use Config;
18
19 use Test::More tests => 20;
20 use MakeMaker::Test::Utils;
21 use MakeMaker::Test::Setup::BFD;
22
23 my $Is_VMS = $^O eq 'VMS';
24
25 my $perl = which_perl();
26
27 chdir 't';
28 perl_lib;
29
30 ok( setup_recurs(), 'setup' );
31 END {
32     ok( chdir File::Spec->updir );
33     ok( teardown_recurs(), 'teardown' );
34 }
35
36 ok( chdir('Big-Dummy'), "chdir'd to Big-Dummy") || diag("chdir failed; $!");
37
38 my @mpl_out = run(qq{$perl Makefile.PL "INSTALL_BASE=../dummy-install"});
39 END { rmtree '../dummy-install'; }
40
41 cmp_ok( $?, '==', 0, 'Makefile.PL exited with zero' ) ||
42   diag(@mpl_out);
43
44 my $makefile = makefile_name();
45 ok( grep(/^Writing $makefile for Big::Dummy/, 
46          @mpl_out) == 1,
47                                            'Makefile.PL output looks right');
48
49 my $make = make_run();
50 run("$make");   # this is necessary due to a dmake bug.
51 my $install_out = run("$make install");
52 is( $?, 0, '  make install exited normally' ) || diag $install_out;
53 like( $install_out, qr/^Installing /m );
54
55 ok( -r '../dummy-install',      '  install dir created' );
56
57 my @installed_files = 
58   ('../dummy-install/lib/perl5/Big/Dummy.pm',
59    '../dummy-install/lib/perl5/Big/Liar.pm',
60    '../dummy-install/bin/program',
61    "../dummy-install/lib/perl5/$Config{archname}/perllocal.pod",
62    "../dummy-install/lib/perl5/$Config{archname}/auto/Big/Dummy/.packlist"
63   );
64
65 foreach my $file (@installed_files) {
66     ok( -e $file, "  $file installed" );
67     ok( -r $file, "  $file readable" );
68 }
69
70
71 # nmake outputs its damned logo
72 # Send STDERR off to oblivion.
73 open(SAVERR, ">&STDERR") or die $!;
74 open(STDERR, ">".File::Spec->devnull) or die $!;
75
76 my $realclean_out = run("$make realclean");
77 is( $?, 0, 'realclean' ) || diag($realclean_out);
78
79 open(STDERR, ">&SAVERR") or die $!;
80 close SAVERR;