1use strict;
2use warnings;
3use Pod::Html;
4use Test::More;
5
6my $podfile = "$$.pod";
7my $infile = "$$.in";
8my @outfile = map { "$$.o$_" } 0..2;
9
10open my $pod, '>', $podfile or die "$podfile: $!";
11print $pod <<__EOF__;
12=pod
13
14=head1 NAME
15
16crlf
17
18=head1 DESCRIPTION
19
20crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf
21crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf
22crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf
23crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf
24
25    crlf crlf crlf crlf
26    crlf crlf crlf crlf
27    crlf crlf crlf crlf
28
29crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf
30crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf
31crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf
32crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf crlf
33
34=cut
35__EOF__
36close $pod or die $!;
37
38my $i = 0;
39foreach my $eol ("\r", "\n", "\r\n") {
40    open $pod, '<', $podfile or die "$podfile: $!";
41    open my $in, '>', $infile  or die "$infile: $!";
42    while (<$pod>) {
43        s/[\r\n]+/$eol/g;
44        print $in $_;
45    }
46    close $pod or die $!;
47    close $in or die $!;
48
49    pod2html("--title=eol", "--infile=$infile", "--outfile=$outfile[$i]");
50    ++$i;
51}
52
53# --- now test ---
54
55my @cksum;
56
57foreach (0..2) {
58    local $/;
59    open my $in, '<', $outfile[$_] or die "$outfile[$_]: $!";
60    $cksum[$_] = unpack "%32C*", <$in>;
61    close $in or die $!;
62}
63
64is($cksum[0], $cksum[1], "CR vs LF");
65is($cksum[0], $cksum[2], "CR vs CRLF");
66is($cksum[1], $cksum[2], "LF vs CRLF");
67
68END {
69    1 while unlink $podfile, $infile, @outfile, 'pod2htmd.tmp';
70}
71
72done_testing;
73