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 | }
|
---|