Move Data::Dumper from ext/ to dist/
[perl.git] / ext / ExtUtils-Install / t / InstallWithMM.t
1 #!/usr/bin/perl -w
2
3 # Make sure EUI works with MakeMaker
4
5 BEGIN {
6     unshift @INC, 't/lib';
7 }
8
9 use strict;
10 use Config;
11 use ExtUtils::MakeMaker;
12
13 use Test::More tests => 15;
14 use MakeMaker::Test::Utils;
15 use MakeMaker::Test::Setup::BFD;
16 use File::Find;
17 use File::Spec;
18 use File::Path;
19
20 my $make = make_run();
21
22 # Environment variables which interfere with our testing.
23 delete @ENV{qw(PREFIX LIB MAKEFLAGS)};
24
25 # Run Makefile.PL
26 {
27     my $perl = which_perl();
28     my $Is_VMS = $^O eq 'VMS';
29
30     chdir 't';
31
32     perl_lib;
33
34     my $Touch_Time = calibrate_mtime();
35
36     $| = 1;
37
38     ok( setup_recurs(), 'setup' );
39     END {
40         ok( chdir File::Spec->updir );
41         ok( teardown_recurs(), 'teardown' );
42     }
43
44     ok( chdir('Big-Dummy'), "chdir'd to Big-Dummy" ) ||
45       diag("chdir failed: $!");
46
47     my @mpl_out = run(qq{$perl Makefile.PL "PREFIX=../dummy-install"});
48     END { rmtree '../dummy-install'; }
49
50     cmp_ok( $?, '==', 0, 'Makefile.PL exited with zero' ) ||
51       diag(@mpl_out);
52
53     END { unlink makefile_name(), makefile_backup() }
54 }
55
56
57 # make
58 {
59     my $make_out = run($make);
60     is( $?, 0, 'make ran ok' ) ||
61       diag($make_out);
62 }
63
64
65 # Test 'make install VERBINST=1'
66 {
67     my $make_install_verbinst = make_macro($make, 'install', VERBINST => 1);
68     my $install_out = run($make_install_verbinst);
69     is( $?, 0, 'install' ) || diag $install_out;
70     like( $install_out, qr/^Installing /m );
71     like( $install_out, qr/^Writing /m );
72
73     ok( -r '../dummy-install',     '  install dir created' );
74     my %files = ();
75     find( sub {
76               # do it case-insensitive for non-case preserving OSs
77               my $file = lc $_;
78
79               # VMS likes to put dots on the end of things that don't have them.
80               $file =~ s/\.$// if $Is_VMS;
81
82               $files{$file} = $File::Find::name;
83           }, '../dummy-install' );
84     ok( $files{'dummy.pm'},     '  Dummy.pm installed' );
85     ok( $files{'liar.pm'},      '  Liar.pm installed'  );
86     ok( $files{'program'},      '  program installed'  );
87     ok( $files{'.packlist'},    '  packlist created'   );
88     ok( $files{'perllocal.pod'},'  perllocal.pod created' );
89 }