Commit | Line | Data |
351625bd |
1 | BEGIN { |
2 | if( $ENV{PERL_CORE} ) { |
3 | chdir 't'; |
4 | use File::Spec; |
5 | @INC = (File::Spec->rel2abs('../lib') ); |
6 | } |
7 | } |
8 | use strict; |
9 | |
10 | #sub Pod::Simple::Search::DEBUG () {5}; |
11 | |
12 | use Pod::Simple::Search; |
13 | use Test; |
9d65762f |
14 | BEGIN { plan tests => 8 } |
351625bd |
15 | |
16 | print "# Test the scanning of the whole of \@INC ...\n"; |
17 | |
18 | my $x = Pod::Simple::Search->new; |
19 | die "Couldn't make an object!?" unless ok defined $x; |
20 | ok $x->inc; # make sure inc=1 is the default |
21 | print $x->_state_as_string; |
22 | #$x->verbose(12); |
23 | |
24 | use Pod::Simple; |
25 | *pretty = \&Pod::Simple::BlackBox::pretty; |
26 | |
27 | my $found = 0; |
28 | $x->callback(sub { |
29 | print "# ", join(" ", map "{$_}", @_), "\n"; |
30 | ++$found; |
31 | return; |
32 | }); |
33 | |
34 | print "# \@INC == @INC\n"; |
35 | |
36 | my $t = time(); my($name2where, $where2name) = $x->survey(); |
37 | $t = time() - $t; |
38 | ok $found; |
39 | |
40 | print "# Found $found items in $t seconds!\n# See...\n"; |
41 | |
42 | my $p = pretty( $where2name, $name2where )."\n"; |
43 | $p =~ s/, +/,\n/g; |
44 | $p =~ s/^/# /mg; |
45 | print $p; |
46 | |
47 | print "# OK, making sure strict and strict.pm were in there...\n"; |
9d65762f |
48 | print "# (On Debian-based distributions Pod is stripped from\n", |
49 | "# strict.pm, so skip these tests.)\n"; |
50 | my $nopod = not exists ($name2where->{'strict'}); |
51 | skip($nopod, ($name2where->{'strict'} || 'huh???'), '/strict\.(pod|pm)$/'); |
351625bd |
52 | |
9d65762f |
53 | skip($nopod, grep( m/strict\.(pod|pm)/, keys %$where2name )); |
351625bd |
54 | |
55 | my $strictpath = $name2where->{'strict'}; |
56 | if( $strictpath ) { |
57 | my @x = ($x->find('strict')||'(nil)', $strictpath); |
58 | print "# Comparing \"$x[0]\" to \"$x[1]\"\n"; |
59 | for(@x) { s{[/\\]}{/}g; } |
60 | print "# => \"$x[0]\" to \"$x[1]\"\n"; |
61 | ok $x[0], $x[1], " find('strict') should match survey's name2where{strict}"; |
9d65762f |
62 | } elsif ($nopod) { |
63 | skip "skipping find() for strict.pm"; # skipping find() for 'thatpath/strict.pm |
351625bd |
64 | } else { |
9d65762f |
65 | ok 0; # an entry without a defined path means can't test find() |
66 | } |
67 | |
68 | print "# Test again on a module we know is present, in case the |
69 | strict.pm tests were skipped...\n"; |
70 | |
71 | # Grab the first item in $name2where, since it doesn't matter which we |
72 | # use. |
73 | my $testmod = (keys %$name2where)[0]; |
74 | my $testpath = $name2where->{$testmod}; |
75 | if( $testmod ) { |
76 | my @x = ($x->find($testmod)||'(nil)', $testpath); |
77 | print "# Comparing \"$x[0]\" to \"$x[1]\"\n"; |
78 | for(@x) { s{[/\\]}{/}g; } |
79 | print "# => \"$x[0]\" to \"$x[1]\"\n"; |
80 | ok $x[0], $x[1], " find('$testmod') should match survey's name2where{$testmod}"; |
81 | } else { |
82 | ok 0; # no 'thatpath/<name>.pm' means can't test find() |
351625bd |
83 | } |
84 | |
85 | ok 1; |
86 | print "# Byebye from ", __FILE__, "\n"; |
87 | print "# @INC\n"; |
88 | __END__ |
89 | |