#!/usr/bin/perl -w
BEGIN {
chdir
't'
if
-d
't'
;
if
(
$ENV
{PERL_CORE}) {
@INC
=
'../lib'
;
}
else
{
unshift
(
@INC
,
'../blib/lib'
);
}
unshift
(
@INC
,
'../blib/lib'
);
$| = 1;
print
"1..11\n"
;
}
END {
print
"not ok 1\n"
unless
$loaded
;
}
sub
source_path {
my
$file
=
shift
;
if
(
$ENV
{PERL_CORE}) {
my
$updir
= File::Spec->updir;
my
$dir
= File::Spec->catdir (
$updir
,
'lib'
,
'Pod'
,
't'
);
return
File::Spec->catfile (
$dir
,
$file
);
}
else
{
return
$file
;
}
}
$loaded
= 1;
print
"ok 1\n"
;
$ENV
{COLUMNS} = 80;
$ENV
{TERM} =
'xterm'
;
$ENV
{TERMCAP} =
'xterm:co=80:do=^J:md=\E[1m:us=\E[4m:me=\E[m'
;
my
%translators
= (
'Pod::Man'
=>
'man'
,
'Pod::Text'
=>
'txt'
,
'Pod::Text::Color'
=>
'clr'
,
'Pod::Text::Overstrike'
=>
'ovr'
,
'Pod::Text::Termcap'
=>
'cap'
);
%options
= (
sentence
=> 0);
my
$n
= 2;
for
(
sort
keys
%translators
) {
if
(
$_
eq
'Pod::Text::Color'
) {
if
($@) {
print
"ok $n # skip\n"
;
$n
++;
print
"ok $n # skip\n"
;
$n
++;
next
;
}
}
my
$parser
=
$_
->new (
%options
);
print
((
$parser
&&
ref
(
$parser
) eq
$_
) ?
"ok $n\n"
:
"not ok $n\n"
);
$n
++;
$parser
->parse_from_file (source_path (
'basic.pod'
),
'out.tmp'
);
undef
$parser
;
if
(
$_
eq
'Pod::Man'
) {
open
(TMP,
'out.tmp'
) or
die
"Cannot open out.tmp: $!\n"
;
open
(OUTPUT,
"> out.$translators{$_}"
)
or
die
"Cannot create out.$translators{$_}: $!\n"
;
local
$_
;
while
(<TMP>) {
last
if
/^\.TH/ }
print
OUTPUT
while
<TMP>;
close
OUTPUT;
close
TMP;
unlink
'out.tmp'
;
}
else
{
rename
(
'out.tmp'
,
"out.$translators{$_}"
)
or
die
"Cannot rename out.tmp: $!\n"
;
}
{
local
$/;
open
(MASTER, source_path (
"basic.$translators{$_}"
))
or
die
"Cannot open basic.$translators{$_}: $!\n"
;
open
(OUTPUT,
"out.$translators{$_}"
)
or
die
"Cannot open out.$translators{$_}: $!\n"
;
my
$master
= <MASTER>;
my
$output
= <OUTPUT>;
close
MASTER;
close
OUTPUT;
if
($^O eq
'os390'
&&
$_
eq
'Pod::Text::Termcap'
) {
$output
=~
tr
/\033/\047/;
}
if
(
$master
eq
$output
) {
print
"ok $n\n"
;
unlink
"out.$translators{$_}"
;
}
else
{
print
"not ok $n\n"
;
print
"# Non-matching output left in out.$translators{$_}\n"
;
}
}
$n
++;
}