Debian lenny version packages
[pkg-perl] / deb-src / libpod-simple-perl / libpod-simple-perl-3.07 / t / search22.t
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
40 if(        -e ($here1 = source_path('testlib1'      ))) {
41   die "But where's $here2?"
42     unless -e ($here2 = source_path('testlib2'));
43   die "But where's $here3?"
44     unless -e ($here3 = source_path('testlib3'));
45
46 } elsif(   -e ($here1 = File::Spec->catdir($cwd, 't', 'testlib1'      ))) {
47   die "But where's $here2?"
48     unless -e ($here2 = File::Spec->catdir($cwd, 't', 'testlib2'));
49   die "But where's $here3?"
50     unless -e ($here3 = File::Spec->catdir($cwd, 't', 'testlib3'));
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;
74 ok $names, "Blorm|Suzzle|Zonk::Pronk|hinkhonk::Glunk|hinkhonk::Vliff|perlflif|perlthng|perlzuk|squaa|squaa::Glunk|squaa::Vliff|squaa::Wowo|zikzik";
75 }
76
77 {
78 print "# but here we'll see shadowing:\n";
79 my $names = join "|", sort values %$where2name;
80 ok $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";
81
82 my %count;
83 for(values %$where2name) { ++$count{$_} };
84 #print pretty(\%count), "\n\n";
85 delete @count{ grep $count{$_} < 2, keys %count };
86 my $shadowed = join "|", sort keys %count;
87 ok $shadowed, "hinkhonk::Glunk|hinkhonk::Vliff|perlthng|squaa::Vliff";
88
89 sub thar { print "# Seen $_[0] :\n", map "#  {$_}\n", sort grep $where2name->{$_} eq $_[0],keys %$where2name; return; }
90
91 ok $count{'perlthng'}, 2;
92 thar 'perlthng';
93 ok $count{'squaa::Vliff'}, 3;
94 thar 'squaa::Vliff';
95 }
96
97
98 ok( ($name2where->{'squaa'} || 'huh???'), '/squaa\.pm$/');
99
100 ok grep( m/squaa\.pm/, keys %$where2name ), 1;
101
102 ok( ($name2where->{'perlthng'}    || 'huh???'), '/[^\^]testlib1/' );
103 ok( ($name2where->{'squaa::Vliff'} || 'huh???'), '/[^\^]testlib1/' );
104
105 # Some sanity:
106 ok( ($name2where->{'squaa::Wowo'}  || 'huh???'), '/testlib2/' );
107
108
109
110
111 print "# OK, bye from ", __FILE__, "\n";
112 ok 1;
113
114 __END__
115