276 lines
5.1 KiB
Bash
Executable File
276 lines
5.1 KiB
Bash
Executable File
#!/bin/sh
|
|
# Copyright (C) 2000-2013 Free Software Foundation, Inc.
|
|
# This file is part of the GNU C Library.
|
|
# Contributed by Bruno Haible <haible@clisp.cons.org>, 2000.
|
|
#
|
|
|
|
# The GNU C Library is free software; you can redistribute it and/or
|
|
# modify it under the terms of the GNU Lesser General Public
|
|
# License as published by the Free Software Foundation; either
|
|
# version 2.1 of the License, or (at your option) any later version.
|
|
|
|
# The GNU C Library is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
# Lesser General Public License for more details.
|
|
|
|
# You should have received a copy of the GNU Lesser General Public
|
|
# License along with the GNU C Library; if not, see
|
|
# <http://www.gnu.org/licenses/>.
|
|
|
|
# Checks that the iconv() implementation (in both directions) for the
|
|
# stateless encodings agrees with the corresponding charmap table.
|
|
|
|
common_objpfx=$1
|
|
objpfx=$2
|
|
test_program_prefix=$3
|
|
|
|
status=0
|
|
|
|
cat <<EOF |
|
|
# Single-byte and other "small" encodings come here.
|
|
# Keep this list in the same order as gconv-modules.
|
|
#
|
|
# charset name table name comment
|
|
ASCII ANSI_X3.4-1968
|
|
ISO646-GB BS_4730
|
|
ISO646-CA CSA_Z243.4-1985-1
|
|
ISO646-CA2 CSA_Z243.4-1985-2
|
|
ISO646-DE DIN_66003
|
|
ISO646-DK DS_2089
|
|
ISO646-ES ES
|
|
ISO646-ES2 ES2
|
|
ISO646-CN GB_1988-80
|
|
ISO646-IT IT
|
|
ISO646-JP JIS_C6220-1969-RO
|
|
ISO646-JP-OCR-B JIS_C6229-1984-B
|
|
ISO646-YU JUS_I.B1.002
|
|
ISO646-KR KSC5636
|
|
ISO646-HU MSZ_7795.3
|
|
ISO646-CU NC_NC00-10
|
|
ISO646-FR NF_Z_62-010
|
|
ISO646-FR1 NF_Z_62-010_1973
|
|
ISO646-NO NS_4551-1
|
|
ISO646-NO2 NS_4551-2
|
|
ISO646-PT PT
|
|
ISO646-PT2 PT2
|
|
ISO646-SE SEN_850200_B
|
|
ISO646-SE2 SEN_850200_C
|
|
ISO-8859-1
|
|
ISO-8859-2
|
|
ISO-8859-3
|
|
ISO-8859-4
|
|
ISO-8859-5
|
|
ISO-8859-6
|
|
ISO-8859-7
|
|
ISO-8859-8
|
|
ISO-8859-9
|
|
ISO-8859-9E
|
|
ISO-8859-10
|
|
ISO-8859-11
|
|
ISO-8859-13
|
|
ISO-8859-14
|
|
ISO-8859-15
|
|
ISO-8859-16
|
|
T.61-8BIT
|
|
ISO_6937
|
|
#ISO_6937-2 ISO-IR-90 Handling of combining marks is broken
|
|
KOI-8
|
|
KOI8-R
|
|
LATIN-GREEK
|
|
LATIN-GREEK-1
|
|
HP-ROMAN8
|
|
HP-ROMAN9
|
|
HP-TURKISH8
|
|
HP-THAI8
|
|
HP-GREEK8
|
|
EBCDIC-AT-DE
|
|
EBCDIC-AT-DE-A
|
|
EBCDIC-CA-FR
|
|
EBCDIC-DK-NO
|
|
EBCDIC-DK-NO-A
|
|
EBCDIC-ES
|
|
EBCDIC-ES-A
|
|
EBCDIC-ES-S
|
|
EBCDIC-FI-SE
|
|
EBCDIC-FI-SE-A
|
|
EBCDIC-FR
|
|
EBCDIC-IS-FRISS
|
|
EBCDIC-IT
|
|
EBCDIC-PT
|
|
EBCDIC-UK
|
|
EBCDIC-US
|
|
IBM037
|
|
IBM038
|
|
IBM256
|
|
IBM273
|
|
IBM274
|
|
IBM275
|
|
IBM277
|
|
IBM278
|
|
IBM280
|
|
IBM281
|
|
IBM284
|
|
IBM285
|
|
IBM290
|
|
IBM297
|
|
IBM420
|
|
IBM423
|
|
IBM424
|
|
IBM437
|
|
IBM500
|
|
IBM850
|
|
IBM851
|
|
IBM852
|
|
IBM855
|
|
IBM856
|
|
IBM857
|
|
IBM860
|
|
IBM861
|
|
IBM862
|
|
IBM863
|
|
IBM864
|
|
IBM865
|
|
IBM866
|
|
IBM866NAV
|
|
IBM868
|
|
IBM869
|
|
IBM870
|
|
IBM871
|
|
IBM875
|
|
IBM880
|
|
IBM891
|
|
IBM903
|
|
IBM904
|
|
IBM905
|
|
IBM918
|
|
IBM922
|
|
IBM1004
|
|
IBM1026
|
|
#IBM1046 Differs from the AIX and JDK converters
|
|
IBM1047
|
|
IBM1124
|
|
IBM1129
|
|
IBM1160
|
|
IBM1161
|
|
IBM1132
|
|
IBM1133
|
|
IBM1162
|
|
IBM1163
|
|
IBM1164
|
|
CP1125
|
|
CP1250
|
|
CP1251
|
|
CP1252
|
|
CP1253
|
|
CP1254
|
|
CP1255
|
|
CP1256
|
|
CP1257
|
|
CP1258
|
|
IBM874
|
|
CP737
|
|
CP770
|
|
CP771
|
|
CP772
|
|
CP773
|
|
CP774
|
|
CP775
|
|
MACINTOSH
|
|
IEC_P27-1
|
|
ASMO_449
|
|
ISO-IR-99 ANSI_X3.110-1983
|
|
ISO-IR-139 CSN_369103
|
|
CWI
|
|
DEC-MCS
|
|
ECMA-CYRILLIC
|
|
ISO-IR-153 GOST_19768-74
|
|
GREEK-CCITT
|
|
GREEK7
|
|
GREEK7-OLD
|
|
INIS
|
|
INIS-8
|
|
INIS-CYRILLIC
|
|
ISO_2033 ISO_2033-1983
|
|
ISO_5427
|
|
ISO_5427-EXT
|
|
#ISO_5428 Handling of combining marks is broken
|
|
ISO_10367-BOX
|
|
MAC-IS
|
|
MAC-UK
|
|
CP10007
|
|
NATS-DANO
|
|
NATS-SEFI
|
|
WIN-SAMI-2 SAMI-WS2
|
|
ISO-IR-197
|
|
TIS-620
|
|
KOI8-U
|
|
#ISIRI-3342 This charset concept is completely broken
|
|
VISCII
|
|
KOI8-T
|
|
GEORGIAN-PS
|
|
GEORGIAN-ACADEMY
|
|
ISO-IR-209
|
|
MAC-SAMI
|
|
ARMSCII-8
|
|
TCVN5712-1
|
|
TSCII
|
|
PT154
|
|
RK1048
|
|
MIK
|
|
BRF
|
|
MAC-CENTRALEUROPE
|
|
KOI8-RU
|
|
#
|
|
# Multibyte encodings come here
|
|
#
|
|
SJIS SHIFT_JIS
|
|
CP932 WINDOWS-31J
|
|
#IBM932 This converter looks quite strange
|
|
#IBM943 This converter looks quite strange
|
|
EUC-KR
|
|
CP949
|
|
JOHAB
|
|
BIG5
|
|
BIG5HKSCS BIG5-HKSCS
|
|
EUC-JP
|
|
EUC-JP-MS
|
|
EUC-CN GB2312
|
|
GBK
|
|
EUC-TW
|
|
GB18030
|
|
EUC-JISX0213
|
|
SHIFT_JISX0213
|
|
#
|
|
# Stateful encodings not testable this way
|
|
#
|
|
#IBM930
|
|
#IBM933
|
|
#IBM935
|
|
#IBM937
|
|
#IBM939
|
|
#ISO-2022-JP
|
|
#ISO-2022-JP-2
|
|
#ISO-2022-JP-3
|
|
#ISO-2022-KR
|
|
#ISO-2022-CN
|
|
#ISO-2022-CN-EXT
|
|
#UTF-7
|
|
#
|
|
EOF
|
|
while read charset charmap; do
|
|
if test "$charset" = GB18030; then echo "This might take a while" 1>&2; fi
|
|
case ${charset} in \#*) continue;; esac
|
|
echo -n "Testing ${charset}" 1>&2
|
|
if ./tst-table.sh ${common_objpfx} ${objpfx} "${test_program_prefix}" \
|
|
${charset} ${charmap} < /dev/null; then
|
|
echo 1>&2
|
|
else
|
|
echo "failed: ./tst-table.sh ${common_objpfx} ${objpfx} ${charset} ${charmap}"
|
|
echo " *** FAILED ***" 1>&2
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
exit $?
|