078e7df0b12b470048756806349f20b62839cef5
[platform/upstream/dos2unix.git] / test / gb18030.t
1 #!/usr/bin/perl
2
3 # Requires perl-Test-Simple installation.
4 use Test::Simple tests => 12;
5
6 $suffix = "";
7 if (-e "../dos2unix.exe") {
8   $suffix = ".exe";
9 }
10 $DOS2UNIX = "../dos2unix" . $suffix;
11 $MAC2UNIX = "../mac2unix" . $suffix;
12 $UNIX2DOS = "../unix2dos" . $suffix;
13 $UNIX2MAC = "../unix2mac" . $suffix;
14
15 if ($ENV{'MSYSTEM'} =~ /^MINGW/)
16 {
17   $GB_OPT = '-gb';
18 }
19 else
20 {
21   $GB_OPT = '';
22   $ENV{'LC_ALL'} = 'zh_CN.GB18030';
23 }
24
25
26 system("$DOS2UNIX $GB_OPT -v -n dos_gb.txt out_unix.txt; cmp out_unix.txt unix.txt");
27 ok( $? == 0, 'dos2unix removes GB18030 BOM' );
28
29 system("$DOS2UNIX $GB_OPT -v -b -n dos_bom.txt out_unix.txt; cmp out_unix.txt unix_bom.txt");
30 ok( $? == 0, 'dos2unix -b keeps UTF-8 BOM in GB18030 locale' );
31
32 system("$DOS2UNIX $GB_OPT -v -m -n dos.txt out_unix.txt; cmp out_unix.txt unix_gb.txt");
33 ok( $? == 0, 'dos2unix -m adds GB18030 BOM' );
34
35 system("$UNIX2DOS $GB_OPT -v -n unix_bom.txt out_dos.txt; cmp out_dos.txt dos_bom.txt");
36 ok( $? == 0, 'unix2dos keeps UTF-8 BOM in GB18030 locale' );
37
38 system("$UNIX2DOS $GB_OPT -v -r -n unix_gb.txt out_dos.txt; cmp out_dos.txt dos.txt");
39 ok( $? == 0, 'unix2dos -r removes GB18030 BOM' );
40
41 system("$UNIX2DOS $GB_OPT -v -m -n unix.txt out_dos.txt; cmp out_dos.txt dos_gb.txt");
42 ok( $? == 0, 'unix2dos -m adds GB18030 BOM' );
43
44 system("$DOS2UNIX $GB_OPT -v -n utf16le.txt out_unix.txt; cmp out_unix.txt gb18030u.txt");
45 ok( $? == 0, 'dos2unix convert DOS UTF-16LE to Unix GB18030' );
46
47 system("$DOS2UNIX $GB_OPT -b -v -n utf16le.txt out_unix.txt; cmp out_unix.txt gb18030b.txt");
48 ok( $? == 0, 'dos2unix convert DOS UTF-16LE to Unix GB18030, keep BOM' );
49
50 system("$UNIX2DOS $GB_OPT -v -n utf16be.txt out_dos.txt; cmp out_dos.txt gb18030.txt");
51 ok( $? == 0, 'unix2dos convert DOS UTF-16BE to DOS GB18030, keep BOM' );
52
53 system("$DOS2UNIX $GB_OPT -u -v -m -n dos.txt out_unix.txt; cmp out_unix.txt unix_gb.txt");
54 ok( $? == 0, 'dos2unix with option -u adds GB18030 BOM to non UTF-16 file' );
55
56 $ENV{'LC_ALL'} = 'en_US.UTF-8';
57
58 system("$DOS2UNIX -v -b -n dos_gb.txt out_unix.txt; cmp out_unix.txt unix_gb.txt");
59 ok( $? == 0, 'dos2unix -b keeps GB18030 BOM in UTF-8 locale' );
60
61 system("$UNIX2DOS -v -n unix_gb.txt out_dos.txt; cmp out_dos.txt dos_gb.txt");
62 ok( $? == 0, 'unix2dos keeps GB18030 BOM in UTF-8 locale' );
63