Commit | Line | Data |
---|---|---|
0a95303c NIS |
1 | BEGIN { |
2 | # chdir 't' if -d 't'; | |
3 | # @INC = (-d '../../lib' ? '../lib'; | |
4 | require Config; import Config; | |
5 | if ($Config{'extensions'} !~ /\bEncode\b/) { | |
6 | print "1..0 # Skip: Encode was not built\n"; | |
7 | exit 0; | |
8 | } | |
9 | $| = 1; | |
10 | } | |
11 | use Test::More tests => 22; | |
12 | use Encode; | |
13 | use File::Basename; | |
14 | use File::Spec; | |
15 | use File::Compare; | |
16 | require_ok "Encode::Japanese"; | |
17 | ||
18 | ok(defined(my $enc = find_encoding('euc-jp'))); | |
19 | ok($enc->isa('Encode::XS')); | |
20 | is($enc->name,'euc-jp'); | |
21 | my $dir = dirname(__FILE__); | |
22 | my $euc = File::Spec->catfile($dir,"table.euc"); | |
23 | my $utf = File::Spec->catfile($dir,"table.utf8"); | |
24 | my $ref = File::Spec->catfile($dir,"table.ref"); | |
25 | my $rnd = File::Spec->catfile($dir,"table.rnd"); | |
26 | print "# Basic decode test\n"; | |
27 | open(my $src,"<",$euc) || die "Cannot open $euc:$!"; | |
28 | ok(defined($src) && fileno($src)); | |
29 | my $txt = join('',<$src>); | |
30 | open(my $dst,">:utf8",$utf) || die "Cannot open $utf:$!"; | |
31 | ok(defined($dst) && fileno($dst)); | |
32 | my $uni = $enc->decode($txt,1); | |
33 | ok(defined($uni)); | |
34 | is(length($txt),0); | |
35 | print $dst $uni; | |
36 | close($dst); | |
37 | close($src); | |
38 | ok(compare($utf,$ref) == 0); | |
39 | ||
40 | print "# Basic encode test\n"; | |
41 | open(my $src,"<:utf8",$ref) || die "Cannot open $ref:$!"; | |
42 | ok(defined($src) && fileno($src)); | |
43 | my $uni = join('',<$src>); | |
44 | open(my $dst,">",$rnd) || die "Cannot open $rnd:$!"; | |
45 | ok(defined($dst) && fileno($dst)); | |
46 | my $txt = $enc->encode($uni,1); | |
47 | ok(defined($txt)); | |
48 | is(length($uni),0); | |
49 | print $dst $txt; | |
50 | close($dst); | |
51 | close($src); | |
52 | ok(compare($euc,$rnd) == 0); | |
53 | ||
54 | is($enc->name,'euc-jp'); | |
55 | ||
56 | print "# src :encoding test\n"; | |
57 | open(my $src,"<encoding(euc-jp)",$euc) || die "Cannot open $euc:$!"; | |
58 | ok(defined($src) && fileno($src)); | |
59 | open(my $dst,">:utf8",$utf) || die "Cannot open $utf:$!"; | |
60 | ok(defined($dst) || fileno($dst)); | |
61 | $out = select($dst); | |
62 | while (<$src>) | |
63 | { | |
64 | print; | |
65 | } | |
66 | close($dst); | |
67 | close($src); | |
68 | ok(compare($utf,$ref) == 0); | |
69 | select($out); | |
70 | ||
71 | SKIP: | |
72 | { | |
25f7d9d3 | 73 | #skip "Multi-byte write is broken",3; |
0a95303c NIS |
74 | print "# dst :encoding test\n"; |
75 | open(my $src,"<:utf8",$ref) || die "Cannot open $ref:$!"; | |
76 | ok(defined($src) || fileno($src)); | |
77 | open(my $dst,">encoding(euc-jp)",$rnd) || die "Cannot open $rnd:$!"; | |
78 | ok(defined($dst) || fileno($dst)); | |
79 | my $out = select($dst); | |
80 | while (<$src>) | |
81 | { | |
82 | print; | |
83 | } | |
84 | close($dst); | |
85 | close($src); | |
86 | ok(compare($euc,$rnd) == 0); | |
87 | select($out); | |
88 | } | |
89 | ||
90 | is($enc->name,'euc-jp'); | |
91 | END { | |
92 | # unlink($utf,$rnd); | |
93 | ||
94 | } |