|
Packit |
d0f5c2 |
# $Id: enc_module.t,v 2.5 2016/11/29 23:29:23 dankogai Exp $
|
|
Packit |
d0f5c2 |
# This file is in euc-jp
|
|
Packit |
d0f5c2 |
BEGIN {
|
|
Packit |
d0f5c2 |
require Config; import Config;
|
|
Packit |
d0f5c2 |
if ($Config{'extensions'} !~ /\bEncode\b/) {
|
|
Packit |
d0f5c2 |
print "1..0 # Skip: Encode was not built\n";
|
|
Packit |
d0f5c2 |
exit 0;
|
|
Packit |
d0f5c2 |
}
|
|
Packit |
d0f5c2 |
unless (find PerlIO::Layer 'perlio') {
|
|
Packit |
d0f5c2 |
print "1..0 # Skip: PerlIO was not built\n";
|
|
Packit |
d0f5c2 |
exit 0;
|
|
Packit |
d0f5c2 |
}
|
|
Packit |
d0f5c2 |
if (defined ${^UNICODE} and ${^UNICODE} != 0){
|
|
Packit |
d0f5c2 |
print "1..0 # Skip: \${^UNICODE} == ${^UNICODE}\n";
|
|
Packit |
d0f5c2 |
exit 0;
|
|
Packit |
d0f5c2 |
}
|
|
Packit |
d0f5c2 |
if (ord("A") == 193) {
|
|
Packit |
d0f5c2 |
print "1..0 # Skip: encoding pragma does not support EBCDIC platforms\n";
|
|
Packit |
d0f5c2 |
exit(0);
|
|
Packit |
d0f5c2 |
}
|
|
Packit |
d0f5c2 |
if ($] >= 5.025 and !$Config{usecperl}) {
|
|
Packit |
d0f5c2 |
print "1..0 # Skip: encoding pragma not supported in Perl 5.26\n";
|
|
Packit |
d0f5c2 |
exit(0);
|
|
Packit |
d0f5c2 |
}
|
|
Packit |
d0f5c2 |
}
|
|
Packit |
d0f5c2 |
use lib qw(t ext/Encode/t ../ext/Encode/t); # latter 2 for perl core
|
|
Packit |
d0f5c2 |
use Mod_EUCJP;
|
|
Packit |
d0f5c2 |
no warnings "deprecated";
|
|
Packit |
d0f5c2 |
use encoding "euc-jp";
|
|
Packit |
d0f5c2 |
use Test::More tests => 3;
|
|
Packit |
d0f5c2 |
use File::Basename;
|
|
Packit |
d0f5c2 |
use File::Spec;
|
|
Packit |
d0f5c2 |
use File::Compare qw(compare_text);
|
|
Packit |
d0f5c2 |
|
|
Packit |
d0f5c2 |
my $DEBUG = shift || 0;
|
|
Packit |
d0f5c2 |
my $dir = dirname(__FILE__);
|
|
Packit |
d0f5c2 |
my $file0 = File::Spec->catfile($dir,"enc_module.enc");
|
|
Packit |
d0f5c2 |
my $file1 = File::Spec->catfile($dir,"$$.enc");
|
|
Packit |
d0f5c2 |
|
|
Packit |
d0f5c2 |
my $obj = Mod_EUCJP->new;
|
|
Packit |
d0f5c2 |
local $SIG{__WARN__} = sub{ $DEBUG and print STDERR @_ };
|
|
Packit |
d0f5c2 |
# to silence reopening STD(IN|OUT) w/o closing unless $DEBUG
|
|
Packit |
d0f5c2 |
|
|
Packit |
d0f5c2 |
open STDOUT, ">", $file1 or die "$file1:$!";
|
|
Packit |
d0f5c2 |
print $obj->str, "\n";
|
|
Packit |
d0f5c2 |
$obj->set("テスト文字列");
|
|
Packit |
d0f5c2 |
print $obj->str, "\n";
|
|
Packit |
d0f5c2 |
|
|
Packit |
d0f5c2 |
# Please do not move this to a point after the comparison -- Craig Berry
|
|
Packit |
d0f5c2 |
# and "unless $^O eq 'freebsd'" is needed for FreeBSD (toy-)?thread
|
|
Packit |
d0f5c2 |
# -- dankogai
|
|
Packit |
d0f5c2 |
close STDOUT unless $^O eq 'freebsd';
|
|
Packit |
d0f5c2 |
|
|
Packit |
d0f5c2 |
my $cmp = compare_text($file0, $file1);
|
|
Packit |
d0f5c2 |
is($cmp, 0, "encoding vs. STDOUT");
|
|
Packit |
d0f5c2 |
|
|
Packit |
d0f5c2 |
my @cmp = qw/初期文字列 テスト文字列/;
|
|
Packit |
d0f5c2 |
open STDIN, "<", $file0 or die "$file0:$!";
|
|
Packit |
d0f5c2 |
$obj = Mod_EUCJP->new;
|
|
Packit |
d0f5c2 |
my $i = 0;
|
|
Packit |
d0f5c2 |
while(<STDIN>){
|
|
Packit |
d0f5c2 |
s/\r?\n\z//;
|
|
Packit |
d0f5c2 |
is ($cmp[$i++], $_, "encoding vs. STDIN - $i");
|
|
Packit |
d0f5c2 |
}
|
|
Packit |
d0f5c2 |
|
|
Packit |
d0f5c2 |
unlink $file1 unless $cmp;
|
|
Packit |
d0f5c2 |
__END__
|
|
Packit |
d0f5c2 |
|