1 /*
   2  * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 
  24 /* @test
  25  * @bug 4513767 4961027 6217210
  26  * @summary Checks canonical names match between old and (NIO) core charsets
  27  * @modules jdk.charsets
  28  */
  29 import java.io.InputStreamReader;
  30 import java.io.IOException;
  31 
  32 public class CheckHistoricalNames {
  33     static int failed = 0;
  34     public static void main (String[] args) throws Exception {
  35         checkHistoricalName("ASCII");
  36         checkHistoricalName("Cp1252");
  37         checkHistoricalName("ISO8859_1");
  38         checkHistoricalName("UnicodeBigUnmarked");
  39         checkHistoricalName("UnicodeLittle");
  40         checkHistoricalName("UnicodeLittleUnmarked");
  41         checkHistoricalName("UTF8");
  42         checkHistoricalName("UTF-16");
  43 
  44         checkMappedName("UnicodeBig", "UTF-16");
  45         checkMappedName("US-ASCII", "ASCII");
  46         checkMappedName("ISO-8859-1", "ISO8859_1");
  47         checkMappedName("UTF-8", "UTF8");
  48         checkMappedName("UTF-16BE", "UnicodeBigUnmarked");
  49         checkMappedName("UTF-16LE", "UnicodeLittleUnmarked");
  50 
  51         checkHistoricalName("ISO8859_2");
  52         checkHistoricalName("ISO8859_4");
  53         checkHistoricalName("ISO8859_5");
  54         checkHistoricalName("ISO8859_7");
  55         checkHistoricalName("ISO8859_9");
  56         checkHistoricalName("ISO8859_13");
  57         checkHistoricalName("KOI8_R");
  58         checkHistoricalName("Cp1250");
  59         checkHistoricalName("Cp1251");
  60         checkHistoricalName("Cp1253");
  61         checkHistoricalName("Cp1254");
  62         checkHistoricalName("Cp1257");
  63 
  64         checkMappedName("ISO-8859-2", "ISO8859_2");
  65         checkMappedName("ISO-8859-4", "ISO8859_4");
  66         checkMappedName("ISO-8859-5", "ISO8859_5");
  67         checkMappedName("ISO-8859-7", "ISO8859_7");
  68         checkMappedName("ISO-8859-9", "ISO8859_9");
  69         checkMappedName("ISO-8859-13", "ISO8859_13");
  70         checkMappedName("KOI8-R", "KOI8_R");
  71         checkMappedName("windows-1250", "Cp1250");
  72         checkMappedName("windows-1251","Cp1251");
  73         checkMappedName("windows-1253", "Cp1253");
  74         checkMappedName("windows-1254", "Cp1254");
  75         checkMappedName("windows-1257", "Cp1257");
  76 
  77         checkHistoricalName("EUC_CN");
  78         checkHistoricalName("EUC_JP");
  79         checkHistoricalName("EUC_JP_LINUX");
  80         checkHistoricalName("EUC_KR");
  81         checkHistoricalName("EUC_TW");
  82         checkHistoricalName("ISO2022CN");
  83         checkHistoricalName("ISO2022JP");
  84         checkHistoricalName("ISO2022KR");
  85         checkHistoricalName("ISO8859_3");
  86         checkHistoricalName("ISO8859_6");
  87         checkHistoricalName("ISO8859_8");
  88         checkHistoricalName("Cp1255");
  89         checkHistoricalName("Cp1256");
  90         checkHistoricalName("Cp1258");
  91         checkHistoricalName("MS936");
  92         checkHistoricalName("MS949");
  93         checkHistoricalName("MS950");
  94         checkHistoricalName("TIS620");
  95 
  96         checkMappedName("EUC-CN", "EUC_CN");
  97         checkMappedName("EUC-JP", "EUC_JP");
  98         checkMappedName("EUC-JP-LINUX", "EUC_JP_LINUX");
  99         checkMappedName("EUC-TW", "EUC_TW");
 100         checkMappedName("EUC-KR", "EUC_KR");
 101         checkMappedName("ISO-2022-CN", "ISO2022CN");
 102         checkMappedName("ISO-2022-JP", "ISO2022JP");
 103         checkMappedName("ISO-2022-KR", "ISO2022KR");
 104         checkMappedName("ISO-8859-3", "ISO8859_3");
 105         checkMappedName("ISO-8859-6", "ISO8859_6");
 106         checkMappedName("ISO-8859-8", "ISO8859_8");
 107         checkMappedName("windows-1255", "Cp1255");
 108         checkMappedName("windows-1256", "Cp1256");
 109         checkMappedName("windows-1258", "Cp1258");
 110         checkMappedName("windows-936", "GBK");
 111         checkMappedName("windows-949", "MS949");
 112         checkMappedName("windows-950", "MS950");
 113         checkMappedName("x-MS950-HKSCS", "MS950_HKSCS");
 114         checkMappedName("x-PCK", "PCK");
 115         checkMappedName("Shift_JIS", "SJIS");
 116         checkMappedName("x-JISAutoDetect", "JISAutoDetect");
 117         checkMappedName("TIS-620", "TIS620");
 118         checkMappedName("x-Big5-Solaris", "Big5_Solaris");
 119 
 120         checkHistoricalName("Cp037");
 121         checkHistoricalName("Cp1006");
 122         checkHistoricalName("Cp1025");
 123         checkHistoricalName("Cp1026");
 124         checkHistoricalName("Cp1046");
 125         checkHistoricalName("Cp1047");
 126         checkHistoricalName("Cp1097");
 127         checkHistoricalName("Cp1098");
 128         checkHistoricalName("Cp1112");
 129         checkHistoricalName("Cp1122");
 130         checkHistoricalName("Cp1123");
 131         checkHistoricalName("Cp1124");
 132         checkHistoricalName("Cp1140");
 133         checkHistoricalName("Cp1141");
 134         checkHistoricalName("Cp1142");
 135         checkHistoricalName("Cp1143");
 136         checkHistoricalName("Cp1144");
 137         checkHistoricalName("Cp1145");
 138         checkHistoricalName("Cp1146");
 139         checkHistoricalName("Cp1147");
 140         checkHistoricalName("Cp1148");
 141         checkHistoricalName("Cp1149");
 142         checkHistoricalName("Cp1381");
 143         checkHistoricalName("Cp1383");
 144         checkHistoricalName("Cp273");
 145         checkHistoricalName("Cp277");
 146         checkHistoricalName("Cp278");
 147         checkHistoricalName("Cp280");
 148         checkHistoricalName("Cp284");
 149         checkHistoricalName("Cp285");
 150         checkHistoricalName("Cp297");
 151         checkHistoricalName("Cp33722");
 152         checkHistoricalName("Cp420");
 153         checkHistoricalName("Cp424");
 154         checkHistoricalName("Cp437");
 155         checkHistoricalName("Cp500");
 156         checkHistoricalName("Cp737");
 157         checkHistoricalName("Cp775");
 158         checkHistoricalName("Cp833");
 159         checkHistoricalName("Cp838");
 160         checkHistoricalName("Cp850");
 161         checkHistoricalName("Cp852");
 162         checkHistoricalName("Cp855");
 163         checkHistoricalName("Cp856");
 164         checkHistoricalName("Cp857");
 165         checkHistoricalName("Cp858");
 166         checkHistoricalName("Cp860");
 167         checkHistoricalName("Cp861");
 168         checkHistoricalName("Cp862");
 169         checkHistoricalName("Cp863");
 170         checkHistoricalName("Cp864");
 171         checkHistoricalName("Cp865");
 172         checkHistoricalName("Cp866");
 173         checkHistoricalName("Cp868");
 174         checkHistoricalName("Cp869");
 175         checkHistoricalName("Cp870");
 176         checkHistoricalName("Cp871");
 177         checkHistoricalName("Cp874");
 178         checkHistoricalName("Cp875");
 179         checkHistoricalName("Cp918");
 180         checkHistoricalName("Cp921");
 181         checkHistoricalName("Cp922");
 182         checkHistoricalName("Cp933");
 183         checkHistoricalName("Cp939");
 184         checkHistoricalName("Cp949");
 185         checkHistoricalName("Cp964");
 186         checkHistoricalName("Cp970");
 187 
 188         checkMappedName("IBM037", "Cp037");
 189         checkMappedName("IBM1006", "Cp1006");
 190         checkMappedName("IBM1025", "Cp1025");
 191         checkMappedName("IBM1026", "Cp1026");
 192         checkMappedName("x-IBM1046", "Cp1046");
 193         checkMappedName("IBM1047", "Cp1047");
 194         checkMappedName("IBM1097", "Cp1097");
 195         checkMappedName("IBM1098", "Cp1098");
 196         checkMappedName("IBM1112", "Cp1112");
 197         checkMappedName("IBM1122", "Cp1122");
 198         checkMappedName("IBM1123", "Cp1123");
 199         checkMappedName("IBM1124", "Cp1124");
 200         checkMappedName("IBM1129", "Cp1129");
 201         checkMappedName("IBM1166", "Cp1166");
 202         checkMappedName("IBM01140", "Cp1140");
 203         checkMappedName("IBM01141", "Cp1141");
 204         checkMappedName("IBM01142", "Cp1142");
 205         checkMappedName("IBM01143", "Cp1143");
 206         checkMappedName("IBM01144", "Cp1144");
 207         checkMappedName("IBM01145", "Cp1145");
 208         checkMappedName("IBM01146", "Cp1146");
 209         checkMappedName("IBM01147", "Cp1147");
 210         checkMappedName("IBM01148", "Cp1148");
 211         checkMappedName("IBM01149", "Cp1149");
 212         checkMappedName("IBM1381", "Cp1381");
 213         checkMappedName("IBM1383", "Cp1383");
 214         checkMappedName("IBM273", "Cp273");
 215         checkMappedName("IBM277", "Cp277");
 216         checkMappedName("IBM278", "Cp278");
 217         checkMappedName("IBM280", "Cp280");
 218         checkMappedName("IBM284", "Cp284");
 219         checkMappedName("IBM285", "Cp285");
 220         checkMappedName("IBM297", "Cp297");
 221         checkMappedName("IBM33722", "Cp33722");
 222         checkMappedName("IBM420", "Cp420");
 223         checkMappedName("IBM424", "Cp424");
 224         checkMappedName("IBM437", "Cp437");
 225         checkMappedName("IBM500", "Cp500");
 226         checkMappedName("IBM737", "Cp737");
 227         checkMappedName("IBM775", "Cp775");
 228         checkMappedName("IBM838", "Cp838");
 229         checkMappedName("IBM850", "Cp850");
 230         checkMappedName("IBM852", "Cp852");
 231         checkMappedName("IBM855", "Cp855");
 232         checkMappedName("IBM856", "Cp856");
 233         checkMappedName("IBM857", "Cp857");
 234         checkMappedName("IBM00858", "Cp858");
 235         checkMappedName("IBM833", "Cp833");
 236         checkMappedName("IBM860", "Cp860");
 237         checkMappedName("IBM861", "Cp861");
 238         checkMappedName("IBM862", "Cp862");
 239         checkMappedName("IBM863", "Cp863");
 240         checkMappedName("IBM864", "Cp864");
 241         checkMappedName("IBM865", "Cp865");
 242         checkMappedName("IBM866", "Cp866");
 243         checkMappedName("IBM868", "Cp868");
 244         checkMappedName("IBM869", "Cp869");
 245         checkMappedName("IBM870", "Cp870");
 246         checkMappedName("IBM871", "Cp871");
 247         checkMappedName("IBM874", "Cp874");
 248         checkMappedName("IBM875", "Cp875");
 249         checkMappedName("IBM918", "Cp918");
 250         checkMappedName("IBM921", "Cp921");
 251         checkMappedName("IBM922", "Cp922");
 252         checkMappedName("x-IBM930", "Cp930");
 253         checkMappedName("IBM933", "Cp933");
 254         checkMappedName("x-IBM935", "Cp935");
 255         checkMappedName("x-IBM937", "Cp937");
 256         checkMappedName("IBM939", "Cp939");
 257         checkMappedName("x-IBM942", "Cp942");
 258         checkMappedName("x-IBM942C", "Cp942C");
 259         checkMappedName("x-IBM943", "Cp943");
 260         checkMappedName("x-IBM943C", "Cp943C");
 261         checkMappedName("x-IBM948", "Cp948");
 262         checkMappedName("IBM949", "Cp949");
 263         checkMappedName("x-IBM949C", "Cp949C");
 264         checkMappedName("x-IBM950", "Cp950");
 265         checkMappedName("IBM964", "Cp964");
 266         checkMappedName("IBM970", "Cp970");
 267 
 268         checkHistoricalName("MacArabic");
 269         checkHistoricalName("MacCentralEurope");
 270         checkHistoricalName("MacCroatian");
 271         checkHistoricalName("MacCyrillic");
 272         checkHistoricalName("MacDingbat");
 273         checkHistoricalName("MacGreek");
 274         checkHistoricalName("MacHebrew");
 275         checkHistoricalName("MacIceland");
 276         checkHistoricalName("MacRoman");
 277         checkHistoricalName("MacRomania");
 278         checkHistoricalName("MacSymbol");
 279         checkHistoricalName("MacThai");
 280         checkHistoricalName("MacTurkish");
 281         checkHistoricalName("MacUkraine");
 282 
 283         checkMappedName("x-MacArabic", "MacArabic");
 284         checkMappedName("x-MacCentralEurope", "MacCentralEurope");
 285         checkMappedName("x-MacCroatian", "MacCroatian");
 286         checkMappedName("x-MacCyrillic", "MacCyrillic");
 287         checkMappedName("x-MacDingbat", "MacDingbat");
 288         checkMappedName("x-MacGreek", "MacGreek");
 289         checkMappedName("x-MacHebrew", "MacHebrew");
 290         checkMappedName("x-MacIceland", "MacIceland");
 291         checkMappedName("x-MacRoman", "MacRoman");
 292         checkMappedName("x-MacRomania", "MacRomania");
 293         checkMappedName("x-MacSymbol", "MacSymbol");
 294         checkMappedName("x-MacThai", "MacThai");
 295         checkMappedName("x-MacTurkish", "MacTurkish");
 296         checkMappedName("x-MacUkraine", "MacUkraine");
 297 
 298         if (failed != 0)
 299             throw new Exception("Test Failed: " + failed);
 300         else
 301             System.out.println("Test Passed!");
 302     }
 303 
 304     private static void checkHistoricalName(String name) throws Exception {
 305         checkMappedName(name, name);
 306     }
 307 
 308     private static void checkMappedName(String alias, String canonical)
 309         throws Exception {
 310         InputStreamReader reader = new InputStreamReader(System.in, alias);
 311         if (!reader.getEncoding().equals(canonical)) {
 312             System.out.println("Failed canonical names : mismatch for " + alias
 313                                + " - expected " + canonical
 314                                + ", got " + reader.getEncoding());
 315             failed++;
 316         }
 317     }
 318 }