blob: d3585eb9c2e925ff278c568db6b567bb85df4231 (
plain)
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
|
package MakeMaker::Test::Setup::Recurs;
@ISA = qw(Exporter);
require Exporter;
@EXPORT = qw(setup_recurs teardown_recurs);
use strict;
use File::Path;
use File::Basename;
use MakeMaker::Test::Utils;
my %Files = (
'Recurs/Makefile.PL' => <<'END',
use ExtUtils::MakeMaker;
WriteMakefile(
NAME => 'Recurs',
VERSION => 1.00,
);
END
'Recurs/prj2/Makefile.PL' => <<'END',
use ExtUtils::MakeMaker;
WriteMakefile(
NAME => 'Recurs::prj2',
VERSION => 1.00,
);
END
# Check if a test failure in a subdir causes make test to fail
'Recurs/prj2/t/fail.t' => <<'END',
#!/usr/bin/perl -w
print "1..1\n";
print "not ok 1\n";
END
);
sub setup_recurs {
setup_mm_test_root();
chdir 'MM_TEST_ROOT:[t]' if $^O eq 'VMS';
while(my($file, $text) = each %Files) {
# Convert to a relative, native file path.
$file = File::Spec->catfile(File::Spec->curdir, split m{\/}, $file);
my $dir = dirname($file);
mkpath $dir;
open(FILE, ">$file") || die "Can't create $file: $!";
print FILE $text;
close FILE;
}
return 1;
}
sub teardown_recurs {
foreach my $file (keys %Files) {
my $dir = dirname($file);
if( -e $dir ) {
rmtree($dir) || return;
}
}
return 1;
}
1;
|