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";
11 use Test::More tests => 22;
16 require_ok "Encode::Japanese";
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);
38 ok(compare($utf,$ref) == 0);
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);
52 ok(compare($euc,$rnd) == 0);
54 is($enc->name,'euc-jp');
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));
68 ok(compare($utf,$ref) == 0);
73 skip "Multi-byte write is broken",3;
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);
86 ok(compare($euc,$rnd) == 0);
90 is($enc->name,'euc-jp');