| 1 | #!./perl
|
|---|
| 2 |
|
|---|
| 3 | BEGIN {
|
|---|
| 4 | chdir 't' if -d 't';
|
|---|
| 5 | @INC = '../lib';
|
|---|
| 6 | unless (find PerlIO::Layer 'perlio') {
|
|---|
| 7 | print "1..0 # Skip: not perlio\n";
|
|---|
| 8 | exit 0;
|
|---|
| 9 | }
|
|---|
| 10 | if ($ENV{PERL_CORE_MINITEST}) {
|
|---|
| 11 | print "1..0 # Skip: no dynamic loading on miniperl, no threads\n";
|
|---|
| 12 | exit 0;
|
|---|
| 13 | }
|
|---|
| 14 | require Config; import Config;
|
|---|
| 15 | if ($Config{'extensions'} !~ /\bEncode\b/) {
|
|---|
| 16 | print "1..0 # Skip: Encode was not built\n";
|
|---|
| 17 | exit 0;
|
|---|
| 18 | }
|
|---|
| 19 | }
|
|---|
| 20 |
|
|---|
| 21 | require "./test.pl";
|
|---|
| 22 |
|
|---|
| 23 | plan(tests => 15);
|
|---|
| 24 |
|
|---|
| 25 | my $BOM = chr(0xFEFF);
|
|---|
| 26 |
|
|---|
| 27 | sub test {
|
|---|
| 28 | my ($enc, $tag, $bom) = @_;
|
|---|
| 29 | open(UTF_PL, ">:raw:encoding($enc)", "utf.pl")
|
|---|
| 30 | or die "utf.pl($enc,$tag,$bom): $!";
|
|---|
| 31 | print UTF_PL $BOM if $bom;
|
|---|
| 32 | print UTF_PL "$tag\n";
|
|---|
| 33 | close(UTF_PL);
|
|---|
| 34 | my $got = do "./utf.pl";
|
|---|
| 35 | is($got, $tag);
|
|---|
| 36 | }
|
|---|
| 37 |
|
|---|
| 38 | test("utf16le", 123, 1);
|
|---|
| 39 | test("utf16le", 1234, 1);
|
|---|
| 40 | test("utf16le", 12345, 1);
|
|---|
| 41 | test("utf16be", 123, 1);
|
|---|
| 42 | test("utf16be", 1234, 1);
|
|---|
| 43 | test("utf16be", 12345, 1);
|
|---|
| 44 | test("utf8", 123, 1);
|
|---|
| 45 | test("utf8", 1234, 1);
|
|---|
| 46 | test("utf8", 12345, 1);
|
|---|
| 47 |
|
|---|
| 48 | test("utf16le", 123, 0);
|
|---|
| 49 | test("utf16le", 1234, 0);
|
|---|
| 50 | test("utf16le", 12345, 0);
|
|---|
| 51 | test("utf16be", 123, 0);
|
|---|
| 52 | test("utf16be", 1234, 0);
|
|---|
| 53 | test("utf16be", 12345, 0);
|
|---|
| 54 |
|
|---|
| 55 | END {
|
|---|
| 56 | 1 while unlink "utf.pl";
|
|---|
| 57 | }
|
|---|