Blame iconvdata/tst-tables.sh

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