Commit | Line | Data |
---|---|---|
351625bd SP |
1 | BEGIN { |
2 | if($ENV{PERL_CORE}) { | |
3 | chdir 't'; | |
4 | @INC = '../lib'; | |
5 | } | |
6 | } | |
7 | ||
8 | use strict; | |
9 | use Pod::Simple::Search; | |
10 | use Test; | |
11 | BEGIN { plan tests => 13 } | |
12 | ||
13 | print "# ", __FILE__, | |
14 | ": Testing the scanning of several docroots...\n"; | |
15 | ||
16 | my $x = Pod::Simple::Search->new; | |
17 | die "Couldn't make an object!?" unless ok defined $x; | |
18 | ||
19 | $x->inc(0); | |
20 | $x->shadows(1); | |
21 | ||
22 | use File::Spec; | |
23 | use Cwd; | |
24 | my $cwd = cwd(); | |
25 | print "# CWD: $cwd\n"; | |
26 | ||
27 | sub source_path { | |
28 | my $file = shift; | |
29 | if ($ENV{PERL_CORE}) { | |
30 | my $updir = File::Spec->updir; | |
31 | my $dir = File::Spec->catdir($updir, 'lib', 'Pod', 'Simple', 't'); | |
32 | return File::Spec->catdir ($dir, $file); | |
33 | } else { | |
34 | return $file; | |
35 | } | |
36 | } | |
37 | ||
38 | my($here1, $here2, $here3); | |
39 | ||
9b134129 | 40 | if( -e ($here1 = source_path('testlib1' ))) { |
351625bd | 41 | die "But where's $here2?" |
9b134129 | 42 | unless -e ($here2 = source_path('testlib2')); |
351625bd | 43 | die "But where's $here3?" |
9b134129 | 44 | unless -e ($here3 = source_path('testlib3')); |
351625bd | 45 | |
9b134129 | 46 | } elsif( -e ($here1 = File::Spec->catdir($cwd, 't', 'testlib1' ))) { |
351625bd | 47 | die "But where's $here2?" |
9b134129 | 48 | unless -e ($here2 = File::Spec->catdir($cwd, 't', 'testlib2')); |
351625bd | 49 | die "But where's $here3?" |
9b134129 | 50 | unless -e ($here3 = File::Spec->catdir($cwd, 't', 'testlib3')); |
351625bd SP |
51 | |
52 | } else { | |
53 | die "Can't find the test corpora"; | |
54 | } | |
55 | print "# OK, found the test corpora\n# as $here1\n# and $here2\n# and $here3\n#\n"; | |
56 | ok 1; | |
57 | ||
58 | print $x->_state_as_string; | |
59 | #$x->verbose(12); | |
60 | ||
61 | use Pod::Simple; | |
62 | *pretty = \&Pod::Simple::BlackBox::pretty; | |
63 | ||
64 | my($name2where, $where2name) = $x->survey($here1, $here2, $here3); | |
65 | ||
66 | my $p = pretty( $where2name, $name2where )."\n"; | |
67 | $p =~ s/, +/,\n/g; | |
68 | $p =~ s/^/# /mg; | |
69 | print $p; | |
70 | ||
71 | { | |
72 | print "# won't show any shadows, since we're just looking at the name2where keys\n"; | |
73 | my $names = join "|", sort keys %$name2where; | |
bd50b8ff CB |
74 | skip $^O eq 'VMS' ? '-- case may or may not be preserved' : 0, |
75 | $names, | |
76 | "Blorm|Suzzle|Zonk::Pronk|hinkhonk::Glunk|hinkhonk::Vliff|perlflif|perlthng|perlzuk|squaa|squaa::Glunk|squaa::Vliff|squaa::Wowo|zikzik"; | |
351625bd SP |
77 | } |
78 | ||
79 | { | |
80 | print "# but here we'll see shadowing:\n"; | |
81 | my $names = join "|", sort values %$where2name; | |
bd50b8ff CB |
82 | skip $^O eq 'VMS' ? '-- case may or may not be preserved' : 0, |
83 | $names, | |
84 | "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"; | |
351625bd SP |
85 | |
86 | my %count; | |
87 | for(values %$where2name) { ++$count{$_} }; | |
88 | #print pretty(\%count), "\n\n"; | |
89 | delete @count{ grep $count{$_} < 2, keys %count }; | |
90 | my $shadowed = join "|", sort keys %count; | |
9b134129 | 91 | ok $shadowed, "hinkhonk::Glunk|hinkhonk::Vliff|perlthng|squaa::Vliff"; |
351625bd SP |
92 | |
93 | sub thar { print "# Seen $_[0] :\n", map "# {$_}\n", sort grep $where2name->{$_} eq $_[0],keys %$where2name; return; } | |
94 | ||
9b134129 SP |
95 | ok $count{'perlthng'}, 2; |
96 | thar 'perlthng'; | |
351625bd SP |
97 | ok $count{'squaa::Vliff'}, 3; |
98 | thar 'squaa::Vliff'; | |
99 | } | |
100 | ||
101 | ||
102 | ok( ($name2where->{'squaa'} || 'huh???'), '/squaa\.pm$/'); | |
103 | ||
104 | ok grep( m/squaa\.pm/, keys %$where2name ), 1; | |
105 | ||
9b134129 SP |
106 | ok( ($name2where->{'perlthng'} || 'huh???'), '/[^\^]testlib1/' ); |
107 | ok( ($name2where->{'squaa::Vliff'} || 'huh???'), '/[^\^]testlib1/' ); | |
351625bd SP |
108 | |
109 | # Some sanity: | |
bd50b8ff CB |
110 | skip $^O eq 'VMS' ? '-- case may or may not be preserved' : 0, |
111 | ($name2where->{'squaa::Wowo'} || 'huh???'), | |
112 | '/testlib2/'; | |
351625bd SP |
113 | |
114 | ||
115 | ||
116 | print "# OK, bye from ", __FILE__, "\n"; | |
117 | ok 1; | |
118 | ||
119 | __END__ | |
120 |