3 # text-utf8.t -- Test Pod::Text with UTF-8 input.
5 # Copyright 2002, 2004, 2006, 2007, 2008 by Russ Allbery <rra@stanford.edu>
7 # This program is free software; you may redistribute it and/or modify it
8 # under the same terms as Perl itself.
12 if ($ENV{PERL_CORE}) {
15 unshift (@INC, '../blib/lib');
17 unshift (@INC, '../blib/lib');
21 # UTF-8 support requires Perl 5.8 or later.
25 print "ok $n # skip -- Perl 5.8 required for UTF-8 support\n";
32 print "not ok 1\n" unless $loaded;
41 my $parser = Pod::Text->new or die "Cannot create parser\n";
43 eval { binmode (\*DATA, ':encoding(utf-8)') };
44 eval { binmode (\*STDOUT, ':encoding(utf-8)') };
46 next until $_ eq "###\n";
47 open (TMP, '> tmp.pod') or die "Cannot create tmp.pod: $!\n";
48 eval { binmode (\*TMP, ':encoding(utf-8)') };
49 print TMP "=encoding UTF-8\n\n";
51 last if $_ eq "###\n";
55 open (OUT, '> out.tmp') or die "Cannot create out.tmp: $!\n";
56 eval { binmode (\*OUT, ':encoding(utf-8)') };
57 $parser->parse_from_file ('tmp.pod', \*OUT);
59 open (TMP, 'out.tmp') or die "Cannot open out.tmp: $!\n";
60 eval { binmode (\*TMP, ':encoding(utf-8)') };
67 unlink ('tmp.pod', 'out.tmp');
70 last if $_ eq "###\n";
73 if ($output eq $expected) {
77 print "Expected\n========\n$expected\nOutput\n======\n$output\n";
82 # Below the marker are bits of POD and corresponding expected text output.
83 # This is used to test specific features or problems with Pod::Text. The
84 # input and output are separated by lines containing only ###.
89 =head1 Test of SE<lt>E<gt>
91 This is S<some whitespace>.
94 This is some whitespace.
99 =head1 I can eat glass
105 Mi povas manĝi vitron, ĝi ne damaĝas min.
109 ⠊⠀⠉⠁⠝⠀⠑⠁⠞⠀⠛⠇⠁⠎⠎⠀⠁⠝⠙⠀⠊⠞⠀⠙⠕⠑⠎⠝⠞⠀⠓⠥⠗⠞⠀⠍⠑
113 मैं काँच खा सकता हूँ और मुझे उससे कोई चोट नहीं पहुंचती.
117 See L<http://www.columbia.edu/kermit/utf8.html>
121 Mi povas manĝi vitron, ĝi ne damaĝas min.
124 ⠊⠀⠉⠁⠝⠀⠑⠁⠞⠀⠛⠇⠁⠎⠎⠀⠁⠝⠙⠀⠊⠞⠀⠙⠕⠑⠎⠝⠞⠀⠓⠥⠗⠞⠀⠍⠑
127 मैं काँच खा सकता हूँ और मुझे उससे कोई चोट नहीं पहुंचती.
129 See <http://www.columbia.edu/kermit/utf8.html>