Correct PPTP server firewall rules chain.
[tomato/davidwu.git] / release / src / router / libiconv / tests / check-subst
blob287571b166c5ea2d3a214c1966a6285f6cd29320
1 #!/bin/sh
2 # Check of --unicode-subst, --byte-subst, --widechar-subst options.
3 set -e
4 iconv=../src/iconv_no_i18n
5 # Make sure the charset.alias file is found.
6 CHARSETALIASDIR=../lib
7 export CHARSETALIASDIR
9 options_ascii='--unicode-subst=<U+%04X> --byte-subst=<0x%02x> --widechar-subst=<%08x>'
10 options_utf8='--unicode-subst=«U+%04X» --byte-subst=«0x%02x» --widechar-subst=«%08x»'
12 # Test of --byte-subst with an ASCII substitution.
14 cat > tmp-in <<\EOF
15 Böse Bübchen
16 EOF
17 $iconv $options_ascii -f ASCII -t ASCII < tmp-in > tmp-out
18 cat > tmp-ok <<\EOF
19 B<0xc3><0xb6>se B<0xc3><0xbc>bchen
20 EOF
21 cmp tmp-out tmp-ok
23 # Test of --byte-subst with a non-ASCII substitution.
25 if test "`(locale charmap) 2>/dev/null`" = UTF-8; then
26 cat > tmp-in <<\EOF
27 Böse Bübchen
28 EOF
29 $iconv $options_utf8 -f ASCII -t UTF-8 2>/dev/null < tmp-in > tmp-out
30 cat > tmp-ok <<\EOF
31 0xc3»«0xb6»se B«0xc3»«0xbc»bchen
32 EOF
33 cmp tmp-out tmp-ok
36 if test "`(locale charmap) 2>/dev/null`" = UTF-8; then
37 cat > tmp-in <<\EOF
38 Böse Bübchen
39 EOF
40 $iconv $options_utf8 -f ASCII -t ISO-8859-1 2>/dev/null < tmp-in > tmp-out
41 $iconv -f ISO-8859-1 -t UTF-8 < tmp-out > tmp-out2
42 cat > tmp-ok <<\EOF
43 0xc3»«0xb6»se B«0xc3»«0xbc»bchen
44 EOF
45 cmp tmp-out2 tmp-ok
48 # Test of --byte-subst with a very long substitution.
50 cat > tmp-in <<\EOF
51 Böse Bübchen
52 EOF
53 $iconv --byte-subst='<0x%010000x>' -f ASCII -t ASCII < tmp-in > tmp-out
54 # This printf command crashes on Solaris 10.
55 # See <http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6550204>.
56 # Likewise on OSF/1 5.1.
57 if printf 'B<0x%010000x><0x%010000x>se B<0x%010000x><0x%010000x>bchen\n' 0xC3 0xB6 0xC3 0xBC > tmp-ok 2>/dev/null; then
58 cmp tmp-out tmp-ok
61 # Test of --unicode-subst with an ASCII substitution.
63 cat > tmp-in <<\EOF
64 Böse Bübchen
65 EOF
66 $iconv $options_ascii -f UTF-8 -t ASCII < tmp-in > tmp-out
67 cat > tmp-ok <<\EOF
68 B<U+00F6>se B<U+00FC>bchen
69 EOF
70 cmp tmp-out tmp-ok
72 cat > tmp-in <<\EOF
73 Russian (Русский)
74 EOF
75 $iconv $options_ascii -f UTF-8 -t ISO-8859-1 2>/dev/null < tmp-in | $iconv -f ISO-8859-1 -t UTF-8 > tmp-out
76 cat > tmp-ok <<\EOF
77 Russian (<U+0420><U+0443><U+0441><U+0441><U+043A><U+0438><U+0439>)
78 EOF
79 cmp tmp-out tmp-ok
81 # Test of --unicode-subst with a non-ASCII substitution.
83 if test "`(locale charmap) 2>/dev/null`" = UTF-8; then
84 cat > tmp-in <<\EOF
85 Russian (Русский)
86 EOF
87 $iconv $options_utf8 -f UTF-8 -t ISO-8859-1 2>/dev/null < tmp-in > tmp-out
88 $iconv -f ISO-8859-1 -t UTF-8 < tmp-out > tmp-out2
89 cat > tmp-ok <<\EOF
90 Russian («U+0420»«U+0443»«U+0441»«U+0441»«U+043A»«U+0438»«U+0439»)
91 EOF
92 cmp tmp-out2 tmp-ok
95 # Test of --unicode-subst with a very long substitution.
97 cat > tmp-in <<\EOF
98 Böse Bübchen
99 EOF
100 $iconv --unicode-subst='<U+%010000X>' -f UTF-8 -t ASCII < tmp-in > tmp-out
101 # This printf command crashes on Solaris 10.
102 # See <http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6550204>.
103 if printf 'B<U+%010000X>se B<U+%010000X>bchen\n' 0x00F6 0x00FC > tmp-ok 2>/dev/null; then
104 cmp tmp-out tmp-ok
107 cat > tmp-in <<\EOF
108 Böse Bübchen
110 $iconv --byte-subst='<0x%010000x>' -f ASCII -t ASCII < tmp-in > tmp-out
111 # This printf command crashes on Solaris 10.
112 # See <http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6550204>.
113 # Likewise on OSF/1 5.1.
114 if printf 'B<0x%010000x><0x%010000x>se B<0x%010000x><0x%010000x>bchen\n' 0xC3 0xB6 0xC3 0xBC > tmp-ok 2>/dev/null; then
115 cmp tmp-out tmp-ok
118 # Test of --widechar-subst:
119 # wcrtomb() doesn't exist on FreeBSD 4.0 and is broken on MacOS X 10.3.
120 # So far this has been tested only on a glibc system with !__STDC_ISO_10646__.
122 if false && test "`(locale charmap) 2>/dev/null`" = UTF-8; then
123 cat > tmp-in <<\EOF
124 Russian (Русский)
126 $iconv -f char -t wchar_t < tmp-in > tmp-inw
127 LC_ALL=C $iconv $options_ascii -f wchar_t -t ASCII < tmp-inw > tmp-out1
128 LC_ALL=de_DE.ISO-8859-1 $iconv $options_ascii -f wchar_t -t ASCII < tmp-inw > tmp-out2
129 cat > tmp-ok <<\EOF
130 Russian (<00000420><00000443><00000441><00000441><0000043a><00000438><00000439>)
132 cmp tmp-out1 tmp-ok
133 cmp tmp-out2 tmp-ok
134 if test "`(LC_ALL=de_DE.ISO-8859-1 locale charmap) 2>/dev/null`" = ISO-8859-1; then
135 options_latin1=`echo " $options_utf8" | $iconv -f UTF-8 -t ISO-8859-1`
136 LC_ALL=de_DE.ISO-8859-1 $iconv $options_latin1 -f wchar_t -t UTF-8 < tmp-inw > tmp-out1
137 cat > tmp-ok <<\EOF
138 Russian («00000420»«00000443»«00000441»«00000441»«0000043a»«00000438»«00000439»)
140 cmp tmp-out1 tmp-ok
144 rm -f tmp-in* tmp-out* tmp-ok
145 exit 0