annotate nkf-utf8/test.pl @ 17:76d91e545ea8 default tip

addrsbr and dtimep fix
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 24 Nov 2014 14:49:25 +0900
parents 441a2190cfae
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 #!/usr/bin/perl
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 #
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 # nkf test program for nkf 2.0
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 # Shinji KONO <kono@ie.u-ryukyu.ac.jp>
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 # Sun Aug 18 12:25:40 JST 1996
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 # Sun Nov 8 00:16:06 JST 1998
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 # Sun Sep 8 14:04:02 JST 2002
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 #
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 # This is useful when you add new patch on nkf.
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 # Since this test is too strict, faileurs may not mean
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 # wrong conversion.
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 #
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 # nkf 2.0 utf8
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 # nkf 1.5 differs on MIME decoding
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 # nkf 1.4 passes Basic Conversion tests
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 # nkf PDS version passes Basic Conversion tests using "nkf -iB -oB "
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 #
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 $nkf = 'MSWin32' eq $^O ? ".\\nkf" : "./nkf";
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 # $nkf = "doscmd nkf.exe";
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 # If you want to see the testing process, set next flag.
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 $detail_all = 0;
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 $error_count=1;
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 $diff=1;
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 # &library_test0();
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 sub test {
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 &command_test(@_);
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 }
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 sub command_test {
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 local ($nkf,$in,@ans) = @_;
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 local ($result);
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 $result = '';
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 open(OUT,"> nkf.in");
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 binmode OUT;
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 print OUT $in;
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 close(OUT);
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 system("$nkf <nkf.in >nkf.out"); # easy
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 open(IN,"< nkf.out");
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 binmode IN;
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 while(<IN>) {
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 $result .= $_;
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 }
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 if( $nkf =~ /-\S*m/) {
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 $result =~ s/ //g;
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 }
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 $i = 0;
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 foreach $ans (@ans) {
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 if( $nkf =~ /-\S*m/) {
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 $ans =~ s/ //g;
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 }
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 if ($result eq $ans) {
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 print "Ok\n";
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 return $result;
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 }
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 $i++;
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 }
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 $ans = $ans[0];
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 print "Fail\n";
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 system "mv nkf.in nkf.in.$error_count.bad";
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 system "mv nkf.out nkf.out.$error_count.bad";
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 open(OUT,"> nkf.expect.$error_count.bad");
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 binmode OUT;
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 print OUT $ans;
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 close(OUT);
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 $error_count++;
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 if ($diff) {
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 open(R,"|od -c >tmp.result.bad"); binmode R; print R $result; close(R);
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 open(R,"|od -c >tmp.expect.bad"); binmode R; print R $ans; close(R);
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 system "diff -c tmp.result.bad tmp.expect.bad";
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 }
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 return $result;
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 }
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
79
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 do "nkf_test.pl";
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
81
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 unlink "nkf.in";
441a2190cfae Lion fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 unlink "nkf.out";