blob: ebf5f943b3d270d682a7f8c33578855f58f5e3c0 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
#!/usr/bin/perl -w
# Ensure pm_to_blib runs at the right times.
use strict;
use lib 't/lib';
use File::Temp qw[tempdir];
use ExtUtils::MakeMaker;
use MakeMaker::Test::Utils;
use MakeMaker::Test::Setup::BFD;
use Config;
use ExtUtils::MM;
use Test::More
!MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
? (skip_all => "cross-compiling and make not available")
: 'no_plan';
my $perl = which_perl();
my $makefile = makefile_name();
my $make = make_run();
local $ENV{PERL_INSTALL_QUIET};
# Setup our test environment
{
chdir 't';
perl_lib; # sets $ENV{PERL5LIB} relative to t/
my $tmpdir = tempdir( DIR => '../t', CLEANUP => 1 );
use Cwd; my $cwd = getcwd; END { chdir $cwd } # so File::Temp can cleanup
chdir $tmpdir;
ok( setup_recurs(), 'setup' );
END {
ok( chdir File::Spec->updir );
ok( teardown_recurs(), 'teardown' );
}
ok( chdir('Big-Dummy'), "chdir'd to Big-Dummy" ) ||
diag("chdir failed: $!");
}
# Run make once
{
run_ok(qq{$perl Makefile.PL});
run_ok($make);
ok( -e "blib/lib/Big/Dummy.pm", "blib copied pm file" );
}
# Change a pm file, it should be copied.
{
# Wait a couple seconds else our changed file will have the same timestamp
# as the blib file
sleep 2;
ok( open my $fh, ">>", "lib/Big/Dummy.pm" ) or die $!;
print $fh "Something else\n";
close $fh;
run_ok($make);
like slurp("blib/lib/Big/Dummy.pm"), qr/Something else\n$/;
}
# Rerun the Makefile.PL, pm_to_blib should rerun
{
# Seems there are occasional race conditions with these tests
# waiting a couple of seconds appears to resolve these
sleep 2;
run_ok(qq{$perl Makefile.PL});
# XXX This is a fragile way to check that it reran.
like run_ok($make), qr/^Skip /ms;
ok( -e "blib/lib/Big/Dummy.pm", "blib copied pm file" );
}
|