130 lines
3.4 KiB
Perl
130 lines
3.4 KiB
Perl
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__
|
|
|