forked from andk/cpanpm
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path42distroprefs.t
92 lines (80 loc) · 1.63 KB
/
42distroprefs.t
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
83
84
85
86
87
88
89
90
91
92
use strict;
use Test::More;
use Config;
use CPAN::Distroprefs;
use File::Spec;
eval "require YAML; 1" or plan skip_all => "YAML required";
plan tests => 5;
my %ext = (
yml => 'YAML',
);
my $finder = CPAN::Distroprefs->find(
'./distroprefs', \%ext,
);
my $last = '0';
my @errors;
while (my $next = $finder->next) {
if ( $next->file lt $last ) {
push @errors, $next->file . " lt $last\n";
}
$last = $next->file;
}
is(scalar @errors, 0, "finder traversed alphabetically") or diag @errors;
sub find_ok {
my ($arg, $expect, $label) = @_;
my $finder = CPAN::Distroprefs->find(
'./distroprefs', \%ext,
);
isa_ok($finder, 'CPAN::Distroprefs::Iterator');
my %arg = (
env => \%ENV,
perl => $^X,
perlconfig => \%Config::Config,
module => [],
%$arg,
);
my $found;
while (my $result = $finder->next) {
next unless $result->is_success;
for my $pref (@{ $result->prefs }) {
if ($pref->matches(\%arg)) {
$found = {
prefs => $pref->data,
prefs_file => $result->abs,
};
}
}
}
is_deeply(
$found,
$expect,
$label,
);
}
find_ok(
{
distribution => 'HDP/Perl-Version-1',
},
{
prefs => YAML::LoadFile('distroprefs/HDP.Perl-Version.yml'),
prefs_file => File::Spec->catfile(qw/distroprefs HDP.Perl-Version.yml/),
},
'match .yml',
);
%ext = (
dd => 'Data::Dumper',
);
find_ok(
{
distribution => 'INGY/YAML-0.66',
},
{
prefs => do 'distroprefs/INGY.YAML.dd',
prefs_file => File::Spec->catfile(qw/distroprefs INGY.YAML.dd/),
},
'match .dd',
);
# Local Variables:
# mode: cperl
# cperl-indent-level: 2
# End: