|
Packit Service |
949123 |
#!/usr/bin/perl
|
|
Packit Service |
949123 |
#
|
|
Packit Service |
949123 |
# nkf test program for nkf 2.0
|
|
Packit Service |
949123 |
# Shinji KONO <kono@ie.u-ryukyu.ac.jp>
|
|
Packit Service |
949123 |
# Sun Aug 18 12:25:40 JST 1996
|
|
Packit Service |
949123 |
# Sun Nov 8 00:16:06 JST 1998
|
|
Packit Service |
949123 |
# Sun Sep 8 14:03:28 JST 2002
|
|
Packit Service |
949123 |
#
|
|
Packit Service |
949123 |
# This is useful when you add new patch on nkf.
|
|
Packit Service |
949123 |
# Since this test is too strict, faileurs may not mean
|
|
Packit Service |
949123 |
# wrong conversion.
|
|
Packit Service |
949123 |
#
|
|
Packit Service |
949123 |
# nkf 2.0 utf8
|
|
Packit Service |
949123 |
# nkf 1.5 differs on MIME decoding
|
|
Packit Service |
949123 |
# nkf 1.4 passes Basic Conversion tests
|
|
Packit Service |
949123 |
# nkf PDS version passes Basic Conversion tests using "nkf -iB -oB "
|
|
Packit Service |
949123 |
#
|
|
Packit Service |
949123 |
|
|
Packit Service |
949123 |
$nkf = "./nkf";
|
|
Packit Service |
949123 |
# $nkf = "doscmd nkf.exe";
|
|
Packit Service |
949123 |
|
|
Packit Service |
949123 |
# If you want to see the testing process, set next flag.
|
|
Packit Service |
949123 |
|
|
Packit Service |
949123 |
$detail_all = 0;
|
|
Packit Service |
949123 |
$diff = 1;
|
|
Packit Service |
949123 |
|
|
Packit Service |
949123 |
&library_test0();
|
|
Packit Service |
949123 |
sub test {
|
|
Packit Service |
949123 |
use NKF;
|
|
Packit Service |
949123 |
&library_test(@_);
|
|
Packit Service |
949123 |
}
|
|
Packit Service |
949123 |
|
|
Packit Service |
949123 |
sub library_test {
|
|
Packit Service |
949123 |
local ($nkf,$in,@ans) = @_;
|
|
Packit Service |
949123 |
local ($result);
|
|
Packit Service |
949123 |
|
|
Packit Service |
949123 |
|
|
Packit Service |
949123 |
# $nkf =~ s/^[^_]* //;
|
|
Packit Service |
949123 |
local (@nkf) = split(/ /,$nkf);
|
|
Packit Service |
949123 |
shift(@nkf);
|
|
Packit Service |
949123 |
print "\nINPUT:\n",$in if ($detail || $detail_all);
|
|
Packit Service |
949123 |
print "\nEXPECT:\n", $ans if ($detail || $detail_all);
|
|
Packit Service |
949123 |
$result = NKF::nkf(@nkf,$in);
|
|
Packit Service |
949123 |
print "\nGOT:\n",$result if ($detail || $detail_all);
|
|
Packit Service |
949123 |
|
|
Packit Service |
949123 |
if( $nkf =~ /-\S*m/) {
|
|
Packit Service |
949123 |
$result =~ s/ //g;
|
|
Packit Service |
949123 |
}
|
|
Packit Service |
949123 |
$i = -1;
|
|
Packit Service |
949123 |
foreach $ans (@ans) {
|
|
Packit Service |
949123 |
$i++;
|
|
Packit Service |
949123 |
if( $nkf =~ /-\S*m/) {
|
|
Packit Service |
949123 |
$ans =~ s/ //g;
|
|
Packit Service |
949123 |
}
|
|
Packit Service |
949123 |
if ($result eq $ans){
|
|
Packit Service |
949123 |
print "Ok\n";
|
|
Packit Service |
949123 |
return $result;
|
|
Packit Service |
949123 |
}
|
|
Packit Service |
949123 |
}
|
|
Packit Service |
949123 |
$ans = @ans[$i];
|
|
Packit Service |
949123 |
|
|
Packit Service |
949123 |
print "Fail\n";
|
|
Packit Service |
949123 |
if ($diff) {
|
|
Packit Service |
949123 |
open(R,"|od -c >tmp.result.bad"); binmode R; print R $result; close(R);
|
|
Packit Service |
949123 |
open(R,"|od -c >tmp.expect.bad"); binmode R; print R $ans; close(R);
|
|
Packit Service |
949123 |
print"$i\n;$result\n;$ans\n" if $nkf[0] eq'-w16B';
|
|
Packit Service |
949123 |
system "diff -c tmp.result.bad tmp.expect.bad";
|
|
Packit Service |
949123 |
}
|
|
Packit Service |
949123 |
return $result;
|
|
Packit Service |
949123 |
}
|
|
Packit Service |
949123 |
|
|
Packit Service |
949123 |
sub library_test0 {
|
|
Packit Service |
949123 |
BEGIN { $| = 1; print "1..3\n"; }
|
|
Packit Service |
949123 |
END {print "not ok 1\n" unless $loaded;}
|
|
Packit Service |
949123 |
use NKF;
|
|
Packit Service |
949123 |
$loaded = 1;
|
|
Packit Service |
949123 |
print "ok 1\n";
|
|
Packit Service |
949123 |
|
|
Packit Service |
949123 |
######################### End of black magic.
|
|
Packit Service |
949123 |
|
|
Packit Service |
949123 |
# Insert your test code below (better if it prints "ok 13"
|
|
Packit Service |
949123 |
# (correspondingly "not ok 13") depending on the success of chunk 13
|
|
Packit Service |
949123 |
# of the test code):
|
|
Packit Service |
949123 |
|
|
Packit Service |
949123 |
if ( nkf("-m","-e","1") ) {
|
|
Packit Service |
949123 |
print "ok 2\n";
|
|
Packit Service |
949123 |
} else {
|
|
Packit Service |
949123 |
print "no 2\n";
|
|
Packit Service |
949123 |
}
|
|
Packit Service |
949123 |
|
|
Packit Service |
949123 |
$output = nkf("\033\$@#1#3#2%B");
|
|
Packit Service |
949123 |
if ($output) {
|
|
Packit Service |
949123 |
# print $output,"\n";
|
|
Packit Service |
949123 |
print "ok 3\n";
|
|
Packit Service |
949123 |
} else {
|
|
Packit Service |
949123 |
print "no 3\n";
|
|
Packit Service |
949123 |
}
|
|
Packit Service |
949123 |
|
|
Packit Service |
949123 |
$output = nkf("-Zj","\033\$@#1#3#2%B");
|
|
Packit Service |
949123 |
if ($output) {
|
|
Packit Service |
949123 |
# print $output,"\n";
|
|
Packit Service |
949123 |
print "ok 4\n";
|
|
Packit Service |
949123 |
} else {
|
|
Packit Service |
949123 |
print "no 4\n";
|
|
Packit Service |
949123 |
}
|
|
Packit Service |
949123 |
|
|
Packit Service |
949123 |
# conversion makes strings longer
|
|
Packit Service |
949123 |
$output = "\244\306 " x 1024;
|
|
Packit Service |
949123 |
$old = length($output);
|
|
Packit Service |
949123 |
$output = nkf("-j",$output);
|
|
Packit Service |
949123 |
if ($output) {
|
|
Packit Service |
949123 |
# print $output,"\n";
|
|
Packit Service |
949123 |
print "ok 5 $old ",length($output),"\n";
|
|
Packit Service |
949123 |
} else {
|
|
Packit Service |
949123 |
print "no 5\n";
|
|
Packit Service |
949123 |
}
|
|
Packit Service |
949123 |
}
|
|
Packit Service |
949123 |
|
|
Packit Service |
949123 |
sub command_tests {
|
|
Packit Service |
949123 |
my @tests = @_;
|
|
Packit Service |
949123 |
my ($in, $out, $ans);
|
|
Packit Service |
949123 |
|
|
Packit Service |
949123 |
for (my $i = 0; $i <= $#tests; $i += 3){
|
|
Packit Service |
949123 |
local (@nkf) = split(/ /,$tests[$i]);
|
|
Packit Service |
949123 |
shift(@nkf);
|
|
Packit Service |
949123 |
$in = $tests[$i+1];
|
|
Packit Service |
949123 |
$ans = $tests[$i+2];
|
|
Packit Service |
949123 |
$out = NKF::nkf(@nkf,$in);
|
|
Packit Service |
949123 |
$out =~ s/ //g if $nkf =~ /-\w+m[NS]/o;
|
|
Packit Service |
949123 |
$ans =~ s/ //g if $nkf =~ /-\w+m[NS]/o;
|
|
Packit Service |
949123 |
if ($out ne $ans) {
|
|
Packit Service |
949123 |
last;
|
|
Packit Service |
949123 |
}
|
|
Packit Service |
949123 |
}
|
|
Packit Service |
949123 |
if ($out eq $ans) {
|
|
Packit Service |
949123 |
print "Ok\n";
|
|
Packit Service |
949123 |
return;
|
|
Packit Service |
949123 |
}
|
|
Packit Service |
949123 |
print "Fail\n";
|
|
Packit Service |
949123 |
if ($diff) {
|
|
Packit Service |
949123 |
open(R,"|od -c >tmp.result.bad"); binmode R; print R $out; close(R);
|
|
Packit Service |
949123 |
open(R,"|od -c >tmp.expect.bad"); binmode R; print R $ans; close(R);
|
|
Packit Service |
949123 |
system "diff -c tmp.result.bad tmp.expect.bad";
|
|
Packit Service |
949123 |
}
|
|
Packit Service |
949123 |
return;
|
|
Packit Service |
949123 |
}
|
|
Packit Service |
949123 |
|
|
Packit Service |
949123 |
do "../nkf_test.pl";
|