1#!/bin/sh 2# Copyright (C) 2000-2022 Free Software Foundation, Inc. 3# This file is part of the GNU C Library. 4# 5 6# The GNU C Library is free software; you can redistribute it and/or 7# modify it under the terms of the GNU Lesser General Public 8# License as published by the Free Software Foundation; either 9# version 2.1 of the License, or (at your option) any later version. 10 11# The GNU C Library is distributed in the hope that it will be useful, 12# but WITHOUT ANY WARRANTY; without even the implied warranty of 13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14# Lesser General Public License for more details. 15 16# You should have received a copy of the GNU Lesser General Public 17# License along with the GNU C Library; if not, see 18# <https://www.gnu.org/licenses/>. 19 20# Checks that the iconv() implementation (in both directions) for the 21# stateless encodings agrees with the corresponding charmap table. 22 23common_objpfx=$1 24objpfx=$2 25test_program_prefix=$3 26 27status=0 28 29cat <<EOF | 30 # Single-byte and other "small" encodings come here. 31 # Keep this list in the same order as gconv-modules. 32 # 33 # charset name table name comment 34 ASCII ANSI_X3.4-1968 35 ISO646-GB BS_4730 36 ISO646-CA CSA_Z243.4-1985-1 37 ISO646-CA2 CSA_Z243.4-1985-2 38 ISO646-DE DIN_66003 39 ISO646-DK DS_2089 40 ISO646-ES ES 41 ISO646-ES2 ES2 42 ISO646-CN GB_1988-80 43 ISO646-IT IT 44 ISO646-JP JIS_C6220-1969-RO 45 ISO646-JP-OCR-B JIS_C6229-1984-B 46 ISO646-YU JUS_I.B1.002 47 ISO646-KR KSC5636 48 ISO646-HU MSZ_7795.3 49 ISO646-CU NC_NC00-10 50 ISO646-FR NF_Z_62-010 51 ISO646-FR1 NF_Z_62-010_1973 52 ISO646-NO NS_4551-1 53 ISO646-NO2 NS_4551-2 54 ISO646-PT PT 55 ISO646-PT2 PT2 56 ISO646-SE SEN_850200_B 57 ISO646-SE2 SEN_850200_C 58 ISO-8859-1 59 ISO-8859-2 60 ISO-8859-3 61 ISO-8859-4 62 ISO-8859-5 63 ISO-8859-6 64 ISO-8859-7 65 ISO-8859-8 66 ISO-8859-9 67 ISO-8859-9E 68 ISO-8859-10 69 ISO-8859-11 70 ISO-8859-13 71 ISO-8859-14 72 ISO-8859-15 73 ISO-8859-16 74 T.61-8BIT 75 ISO_6937 76 #ISO_6937-2 ISO-IR-90 Handling of combining marks is broken 77 KOI-8 78 KOI8-R 79 LATIN-GREEK 80 LATIN-GREEK-1 81 HP-ROMAN8 82 HP-ROMAN9 83 HP-TURKISH8 84 HP-THAI8 85 HP-GREEK8 86 EBCDIC-AT-DE 87 EBCDIC-AT-DE-A 88 EBCDIC-CA-FR 89 EBCDIC-DK-NO 90 EBCDIC-DK-NO-A 91 EBCDIC-ES 92 EBCDIC-ES-A 93 EBCDIC-ES-S 94 EBCDIC-FI-SE 95 EBCDIC-FI-SE-A 96 EBCDIC-FR 97 EBCDIC-IS-FRISS 98 EBCDIC-IT 99 EBCDIC-PT 100 EBCDIC-UK 101 EBCDIC-US 102 IBM037 103 IBM038 104 IBM256 105 IBM273 106 IBM274 107 IBM275 108 IBM277 109 IBM278 110 IBM280 111 IBM281 112 IBM284 113 IBM285 114 IBM290 115 IBM297 116 IBM420 117 IBM423 118 IBM424 119 IBM437 120 IBM500 121 IBM850 122 IBM851 123 IBM852 124 IBM855 125 IBM856 126 IBM857 127 IBM858 128 IBM860 129 IBM861 130 IBM862 131 IBM863 132 IBM864 133 IBM865 134 IBM866 135 IBM866NAV 136 IBM868 137 IBM869 138 IBM870 139 IBM871 140 IBM875 141 IBM880 142 IBM891 143 IBM903 144 IBM904 145 IBM905 146 IBM918 147 IBM922 148 IBM1004 149 IBM1026 150 #IBM1046 Differs from the AIX and JDK converters 151 IBM1047 152 IBM1124 153 IBM1129 154 IBM1160 155 IBM1161 156 IBM1132 157 IBM1133 158 IBM1162 159 IBM1163 160 IBM1164 161 CP1125 162 CP1250 163 CP1251 164 CP1252 165 CP1253 166 CP1254 167 CP1255 168 CP1256 169 CP1257 170 CP1258 171 IBM874 172 CP737 173 CP770 174 CP771 175 CP772 176 CP773 177 CP774 178 CP775 179 MACINTOSH 180 IEC_P27-1 181 ASMO_449 182 ISO-IR-99 ANSI_X3.110-1983 183 ISO-IR-139 CSN_369103 184 CWI 185 DEC-MCS 186 ECMA-CYRILLIC 187 ISO-IR-153 GOST_19768-74 188 GREEK-CCITT 189 GREEK7 190 GREEK7-OLD 191 INIS 192 INIS-8 193 INIS-CYRILLIC 194 ISO_2033 ISO_2033-1983 195 ISO_5427 196 ISO_5427-EXT 197 #ISO_5428 Handling of combining marks is broken 198 ISO_10367-BOX 199 MAC-IS 200 MAC-UK 201 CP10007 202 NATS-DANO 203 NATS-SEFI 204 WIN-SAMI-2 SAMI-WS2 205 ISO-IR-197 206 TIS-620 207 KOI8-U 208 #ISIRI-3342 This charset concept is completely broken 209 VISCII 210 KOI8-T 211 GEORGIAN-PS 212 GEORGIAN-ACADEMY 213 ISO-IR-209 214 MAC-SAMI 215 ARMSCII-8 216 TCVN5712-1 217 TSCII 218 PT154 219 RK1048 220 MIK 221 BRF 222 MAC-CENTRALEUROPE 223 KOI8-RU 224 # 225 # Multibyte encodings come here 226 # 227 SJIS SHIFT_JIS 228 CP932 WINDOWS-31J 229 #IBM932 This converter looks quite strange 230 #IBM943 This converter looks quite strange 231 EUC-KR 232 CP949 233 JOHAB 234 BIG5 235 BIG5HKSCS BIG5-HKSCS 236 EUC-JP 237 EUC-JP-MS 238 EUC-CN GB2312 239 GBK 240 EUC-TW 241 GB18030 242 EUC-JISX0213 243 SHIFT_JISX0213 244 # 245 # Stateful encodings not testable this way 246 # 247 #IBM930 248 #IBM933 249 #IBM935 250 #IBM937 251 #IBM939 252 #ISO-2022-JP 253 #ISO-2022-JP-2 254 #ISO-2022-JP-3 255 #ISO-2022-KR 256 #ISO-2022-CN 257 #ISO-2022-CN-EXT 258 #UTF-7 259 # 260EOF 261while read charset charmap; do 262 if test "$charset" = GB18030; then echo "This might take a while" 1>&2; fi 263 case ${charset} in \#*) continue;; esac 264 printf %s "Testing ${charset}" 1>&2 265 if ./tst-table.sh ${common_objpfx} ${objpfx} "${test_program_prefix}" \ 266 ${charset} ${charmap} < /dev/null; then 267 echo 1>&2 268 else 269 echo "failed: ./tst-table.sh ${common_objpfx} ${objpfx} ${charset} ${charmap}" 270 echo " *** FAILED ***" 1>&2 271 exit 1 272 fi 273done 274 275exit $? 276