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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
BEGIN {
if($ENV{PERL_CORE}) {
chdir 't';
@INC = '../lib';
}
}
use strict;
use Pod::Simple::Search;
use Test;
BEGIN { plan tests => 13 }
print "# ", __FILE__,
": Testing the scanning of several docroots...\n";
my $x = Pod::Simple::Search->new;
die "Couldn't make an object!?" unless ok defined $x;
$x->inc(0);
$x->shadows(1);
use File::Spec;
use Cwd;
my $cwd = cwd();
print "# CWD: $cwd\n";
sub source_path {
my $file = shift;
if ($ENV{PERL_CORE}) {
return "../lib/Pod/Simple/t/$file";
} else {
return $file;
}
}
my($here1, $here2, $here3);
if( -e ($here1 = source_path('testlib1' ))) {
die "But where's $here2?"
unless -e ($here2 = source_path('testlib2'));
die "But where's $here3?"
unless -e ($here3 = source_path('testlib3'));
} elsif( -e ($here1 = File::Spec->catdir($cwd, 't', 'testlib1' ))) {
die "But where's $here2?"
unless -e ($here2 = File::Spec->catdir($cwd, 't', 'testlib2'));
die "But where's $here3?"
unless -e ($here3 = File::Spec->catdir($cwd, 't', 'testlib3'));
} else {
die "Can't find the test corpora";
}
print "# OK, found the test corpora\n# as $here1\n# and $here2\n# and $here3\n#\n";
ok 1;
print $x->_state_as_string;
#$x->verbose(12);
use Pod::Simple;
*pretty = \&Pod::Simple::BlackBox::pretty;
my($name2where, $where2name) = $x->survey($here1, $here2, $here3);
my $p = pretty( $where2name, $name2where )."\n";
$p =~ s/, +/,\n/g;
$p =~ s/^/# /mg;
print $p;
my $ascii_order;
if( -e ($ascii_order = source_path('ascii_order.pl'))) {
#
} elsif(-e ($ascii_order = File::Spec->catfile($cwd, 't', 'ascii_order.pl'))) {
#
} else {
die "Can't find ascii_order.pl";
}
require $ascii_order;
{
print "# won't show any shadows, since we're just looking at the name2where keys\n";
my $names = join "|", sort ascii_order keys %$name2where;
skip $^O eq 'VMS' ? '-- case may or may not be preserved' : 0,
$names,
"Blorm|Suzzle|Zonk::Pronk|hinkhonk::Glunk|hinkhonk::Vliff|perlflif|perlthng|perlzuk|squaa|squaa::Glunk|squaa::Vliff|squaa::Wowo|zikzik";
}
{
print "# but here we'll see shadowing:\n";
my $names = join "|", sort ascii_order values %$where2name;
skip $^O eq 'VMS' ? '-- case may or may not be preserved' : 0,
$names,
"Blorm|Suzzle|Zonk::Pronk|hinkhonk::Glunk|hinkhonk::Glunk|hinkhonk::Vliff|hinkhonk::Vliff|perlflif|perlthng|perlthng|perlzuk|squaa|squaa::Glunk|squaa::Vliff|squaa::Vliff|squaa::Vliff|squaa::Wowo|zikzik";
my %count;
for(values %$where2name) { ++$count{$_} };
#print pretty(\%count), "\n\n";
delete @count{ grep $count{$_} < 2, keys %count };
my $shadowed = join "|", sort ascii_order keys %count;
ok $shadowed, "hinkhonk::Glunk|hinkhonk::Vliff|perlthng|squaa::Vliff";
sub thar { print "# Seen $_[0] :\n", map "# {$_}\n", sort ascii_order grep $where2name->{$_} eq $_[0],keys %$where2name; return; }
ok $count{'perlthng'}, 2;
thar 'perlthng';
ok $count{'squaa::Vliff'}, 3;
thar 'squaa::Vliff';
}
ok( ($name2where->{'squaa'} || 'huh???'), '/squaa\.pm$/');
ok grep( m/squaa\.pm/, keys %$where2name ), 1;
ok( ($name2where->{'perlthng'} || 'huh???'), '/[^\^]testlib1/' );
ok( ($name2where->{'squaa::Vliff'} || 'huh???'), '/[^\^]testlib1/' );
# Some sanity:
skip $^O eq 'VMS' ? '-- case may or may not be preserved' : 0,
($name2where->{'squaa::Wowo'} || 'huh???'),
'/testlib2/';
print "# OK, bye from ", __FILE__, "\n";
ok 1;
__END__
|