BEGIN { chdir 't' if -d 't'; if($ENV{PERL_CORE}) { @INC = '../lib'; } } use lib '../lib'; use strict; use Test; BEGIN { plan tests => 5 }; sub source_path { my $file = shift; if ($ENV{PERL_CORE}) { require File::Spec; my $updir = File::Spec->updir; my $dir = File::Spec->catdir ($updir, 'lib', 'Pod', 'Simple', 't'); return File::Spec->catfile ($dir, $file); } else { return $file; } } use Pod::Simple::Text; $Pod::Simple::Text::FREAKYMODE = 1; my $parser = Pod::Simple::Text->new(); foreach my $file ( "junk1.pod", "junk2.pod", "perlcyg.pod", "perlfaq.pod", "perlvar.pod", ) { unless(-e source_path($file)) { ok 0; print "# But $file doesn't exist!!\n"; next; } my $precooked = $file; my $outstring; my $compstring; $precooked =~ s<\.pod>s; $parser->reinit; $parser->output_string(\$outstring); $parser->parse_file(source_path($file)); open(IN, $precooked) or die "Can't read-open $precooked: $!"; { local $/; $compstring = ; } close(IN); for ($outstring,$compstring) { s/\s+/ /g; s/^\s+//s; s/\s+$//s; } if($outstring eq $compstring) { ok 1; next; } elsif( do{ for ($outstring, $compstring) { tr/ //d; }; $outstring eq $compstring; }){ print "# Differ only in whitespace.\n"; ok 1; next; } else { my $x = $outstring ^ $compstring; $x =~ m/^(\x00*)/s or die; my $at = length($1); print "# Difference at byte $at...\n"; if($at > 10) { $at -= 5; } { print "# ", substr($outstring,$at,20), "\n"; print "# ", substr($compstring,$at,20), "\n"; print "# ^..."; } ok 0; printf "# Unequal lengths %s and %s\n", length($outstring), length($compstring); next; } }