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  */
  28 import java.io.InputStreamReader;
  29 import java.io.IOException;
  30 
  31 public class CheckHistoricalNames {
  32     static int failed = 0;
  33     public static void main (String[] args) throws Exception {
  34         checkHistoricalName("ASCII");
  35         checkHistoricalName("Cp1252");
  36         checkHistoricalName("ISO8859_1");
  37         checkHistoricalName("UnicodeBigUnmarked");
  38         checkHistoricalName("UnicodeLittle");
  39         checkHistoricalName("UnicodeLittleUnmarked");
  40         checkHistoricalName("UTF8");
  41         checkHistoricalName("UTF-16");
  42 
  43         checkMappedName("UnicodeBig", "UTF-16");
  44         checkMappedName("US-ASCII", "ASCII");
  45         checkMappedName("ISO-8859-1", "ISO8859_1");
  46         checkMappedName("UTF-8", "UTF8");
  47         checkMappedName("UTF-16BE", "UnicodeBigUnmarked");
  48         checkMappedName("UTF-16LE", "UnicodeLittleUnmarked");
  49 
  50         checkHistoricalName("ISO8859_2");
  51         checkHistoricalName("ISO8859_4");
  52         checkHistoricalName("ISO8859_5");
  53         checkHistoricalName("ISO8859_7");
  54         checkHistoricalName("ISO8859_9");
  55         checkHistoricalName("ISO8859_13");
  56         checkHistoricalName("KOI8_R");
  57         checkHistoricalName("Cp1250");
  58         checkHistoricalName("Cp1251");
  59         checkHistoricalName("Cp1253");
  60         checkHistoricalName("Cp1254");
  61         checkHistoricalName("Cp1257");
  62 
  63         checkMappedName("ISO-8859-2", "ISO8859_2");
  64         checkMappedName("ISO-8859-4", "ISO8859_4");
  65         checkMappedName("ISO-8859-5", "ISO8859_5");
  66         checkMappedName("ISO-8859-7", "ISO8859_7");
  67         checkMappedName("ISO-8859-9", "ISO8859_9");
  68         checkMappedName("ISO-8859-13", "ISO8859_13");
  69         checkMappedName("KOI8-R", "KOI8_R");
  70         checkMappedName("windows-1250", "Cp1250");
  71         checkMappedName("windows-1251","Cp1251");
  72         checkMappedName("windows-1253", "Cp1253");
  73         checkMappedName("windows-1254", "Cp1254");
  74         checkMappedName("windows-1257", "Cp1257");
  75 
  76         checkHistoricalName("EUC_CN");
  77         checkHistoricalName("EUC_JP");
  78         checkHistoricalName("EUC_JP_LINUX");
  79         checkHistoricalName("EUC_KR");
  80         checkHistoricalName("EUC_TW");
  81         checkHistoricalName("ISO2022CN");
  82         checkHistoricalName("ISO2022JP");
  83         checkHistoricalName("ISO2022KR");
  84         checkHistoricalName("ISO8859_3");
  85         checkHistoricalName("ISO8859_6");
  86         checkHistoricalName("ISO8859_8");
  87         checkHistoricalName("Cp1255");
  88         checkHistoricalName("Cp1256");
  89         checkHistoricalName("Cp1258");
  90         checkHistoricalName("MS936");
  91         checkHistoricalName("MS949");
  92         checkHistoricalName("MS950");
  93         checkHistoricalName("TIS620");
  94 
  95         checkMappedName("EUC-CN", "EUC_CN");
  96         checkMappedName("EUC-JP", "EUC_JP");
  97         checkMappedName("EUC-JP-LINUX", "EUC_JP_LINUX");
  98         checkMappedName("EUC-TW", "EUC_TW");
  99         checkMappedName("EUC-KR", "EUC_KR");
 100         checkMappedName("ISO-2022-CN", "ISO2022CN");
 101         checkMappedName("ISO-2022-JP", "ISO2022JP");
 102         checkMappedName("ISO-2022-KR", "ISO2022KR");
 103         checkMappedName("ISO-8859-3", "ISO8859_3");
 104         checkMappedName("ISO-8859-6", "ISO8859_6");
 105         checkMappedName("ISO-8859-8", "ISO8859_8");
 106         checkMappedName("windows-1255", "Cp1255");
 107         checkMappedName("windows-1256", "Cp1256");
 108         checkMappedName("windows-1258", "Cp1258");
 109         checkMappedName("windows-936", "GBK");
 110         checkMappedName("windows-949", "MS949");
 111         checkMappedName("windows-950", "MS950");
 112         checkMappedName("x-MS950-HKSCS", "MS950_HKSCS");
 113         checkMappedName("x-PCK", "PCK");
 114         checkMappedName("Shift_JIS", "SJIS");
 115         checkMappedName("x-JISAutoDetect", "JISAutoDetect");
 116         checkMappedName("TIS-620", "TIS620");
 117         checkMappedName("x-Big5-Solaris", "Big5_Solaris");
 118 
 119         checkHistoricalName("Cp037");
 120         checkHistoricalName("Cp1006");
 121         checkHistoricalName("Cp1025");
 122         checkHistoricalName("Cp1026");
 123         checkHistoricalName("Cp1046");
 124         checkHistoricalName("Cp1047");
 125         checkHistoricalName("Cp1097");
 126         checkHistoricalName("Cp1098");
 127         checkHistoricalName("Cp1112");
 128         checkHistoricalName("Cp1122");
 129         checkHistoricalName("Cp1123");
 130         checkHistoricalName("Cp1124");
 131         checkHistoricalName("Cp1140");
 132         checkHistoricalName("Cp1141");
 133         checkHistoricalName("Cp1142");
 134         checkHistoricalName("Cp1143");
 135         checkHistoricalName("Cp1144");
 136         checkHistoricalName("Cp1145");
 137         checkHistoricalName("Cp1146");
 138         checkHistoricalName("Cp1147");
 139         checkHistoricalName("Cp1148");
 140         checkHistoricalName("Cp1149");
 141         checkHistoricalName("Cp1381");
 142         checkHistoricalName("Cp1383");
 143         checkHistoricalName("Cp273");
 144         checkHistoricalName("Cp277");
 145         checkHistoricalName("Cp278");
 146         checkHistoricalName("Cp280");
 147         checkHistoricalName("Cp284");
 148         checkHistoricalName("Cp285");
 149         checkHistoricalName("Cp297");
 150         checkHistoricalName("Cp33722");
 151         checkHistoricalName("Cp420");
 152         checkHistoricalName("Cp424");
 153         checkHistoricalName("Cp437");
 154         checkHistoricalName("Cp500");
 155         checkHistoricalName("Cp737");
 156         checkHistoricalName("Cp775");
 157         checkHistoricalName("Cp833");
 158         checkHistoricalName("Cp838");
 159         checkHistoricalName("Cp850");
 160         checkHistoricalName("Cp852");
 161         checkHistoricalName("Cp855");
 162         checkHistoricalName("Cp856");
 163         checkHistoricalName("Cp857");
 164         checkHistoricalName("Cp858");
 165         checkHistoricalName("Cp860");
 166         checkHistoricalName("Cp861");
 167         checkHistoricalName("Cp862");
 168         checkHistoricalName("Cp863");
 169         checkHistoricalName("Cp864");
 170         checkHistoricalName("Cp865");
 171         checkHistoricalName("Cp866");
 172         checkHistoricalName("Cp868");
 173         checkHistoricalName("Cp869");
 174         checkHistoricalName("Cp870");
 175         checkHistoricalName("Cp871");
 176         checkHistoricalName("Cp874");
 177         checkHistoricalName("Cp875");
 178         checkHistoricalName("Cp918");
 179         checkHistoricalName("Cp921");
 180         checkHistoricalName("Cp922");
 181         checkHistoricalName("Cp933");
 182         checkHistoricalName("Cp939");
 183         checkHistoricalName("Cp949");
 184         checkHistoricalName("Cp964");
 185         checkHistoricalName("Cp970");
 186 
 187         checkMappedName("IBM037", "Cp037");
 188         checkMappedName("IBM1006", "Cp1006");
 189         checkMappedName("IBM1025", "Cp1025");
 190         checkMappedName("IBM1026", "Cp1026");
 191         checkMappedName("x-IBM1046", "Cp1046");
 192         checkMappedName("IBM1047", "Cp1047");
 193         checkMappedName("IBM1097", "Cp1097");
 194         checkMappedName("IBM1098", "Cp1098");
 195         checkMappedName("IBM1112", "Cp1112");
 196         checkMappedName("IBM1122", "Cp1122");
 197         checkMappedName("IBM1123", "Cp1123");
 198         checkMappedName("IBM1124", "Cp1124");
 199         checkMappedName("IBM01140", "Cp1140");
 200         checkMappedName("IBM01141", "Cp1141");
 201         checkMappedName("IBM01142", "Cp1142");
 202         checkMappedName("IBM01143", "Cp1143");
 203         checkMappedName("IBM01144", "Cp1144");
 204         checkMappedName("IBM01145", "Cp1145");
 205         checkMappedName("IBM01146", "Cp1146");
 206         checkMappedName("IBM01147", "Cp1147");
 207         checkMappedName("IBM01148", "Cp1148");
 208         checkMappedName("IBM01149", "Cp1149");
 209         checkMappedName("IBM1381", "Cp1381");
 210         checkMappedName("IBM1383", "Cp1383");
 211         checkMappedName("IBM273", "Cp273");
 212         checkMappedName("IBM277", "Cp277");
 213         checkMappedName("IBM278", "Cp278");
 214         checkMappedName("IBM280", "Cp280");
 215         checkMappedName("IBM284", "Cp284");
 216         checkMappedName("IBM285", "Cp285");
 217         checkMappedName("IBM297", "Cp297");
 218         checkMappedName("IBM33722", "Cp33722");
 219         checkMappedName("IBM420", "Cp420");
 220         checkMappedName("IBM424", "Cp424");
 221         checkMappedName("IBM437", "Cp437");
 222         checkMappedName("IBM500", "Cp500");
 223         checkMappedName("IBM737", "Cp737");
 224         checkMappedName("IBM775", "Cp775");
 225         checkMappedName("IBM838", "Cp838");
 226         checkMappedName("IBM850", "Cp850");
 227         checkMappedName("IBM852", "Cp852");
 228         checkMappedName("IBM855", "Cp855");
 229         checkMappedName("IBM856", "Cp856");
 230         checkMappedName("IBM857", "Cp857");
 231         checkMappedName("IBM00858", "Cp858");
 232         checkMappedName("IBM833", "Cp833");
 233         checkMappedName("IBM860", "Cp860");
 234         checkMappedName("IBM861", "Cp861");
 235         checkMappedName("IBM862", "Cp862");
 236         checkMappedName("IBM863", "Cp863");
 237         checkMappedName("IBM864", "Cp864");
 238         checkMappedName("IBM865", "Cp865");
 239         checkMappedName("IBM866", "Cp866");
 240         checkMappedName("IBM868", "Cp868");
 241         checkMappedName("IBM869", "Cp869");
 242         checkMappedName("IBM870", "Cp870");
 243         checkMappedName("IBM871", "Cp871");
 244         checkMappedName("IBM874", "Cp874");
 245         checkMappedName("IBM875", "Cp875");
 246         checkMappedName("IBM918", "Cp918");
 247         checkMappedName("IBM921", "Cp921");
 248         checkMappedName("IBM922", "Cp922");
 249         checkMappedName("x-IBM930", "Cp930");
 250         checkMappedName("IBM933", "Cp933");
 251         checkMappedName("x-IBM935", "Cp935");
 252         checkMappedName("x-IBM937", "Cp937");
 253         checkMappedName("IBM939", "Cp939");
 254         checkMappedName("x-IBM942", "Cp942");
 255         checkMappedName("x-IBM942C", "Cp942C");
 256         checkMappedName("x-IBM943", "Cp943");
 257         checkMappedName("x-IBM943C", "Cp943C");
 258         checkMappedName("x-IBM948", "Cp948");
 259         checkMappedName("IBM949", "Cp949");
 260         checkMappedName("x-IBM949C", "Cp949C");
 261         checkMappedName("x-IBM950", "Cp950");
 262         checkMappedName("IBM964", "Cp964");
 263         checkMappedName("IBM970", "Cp970");
 264 
 265         checkHistoricalName("MacArabic");
 266         checkHistoricalName("MacCentralEurope");
 267         checkHistoricalName("MacCroatian");
 268         checkHistoricalName("MacCyrillic");
 269         checkHistoricalName("MacDingbat");
 270         checkHistoricalName("MacGreek");
 271         checkHistoricalName("MacHebrew");
 272         checkHistoricalName("MacIceland");
 273         checkHistoricalName("MacRoman");
 274         checkHistoricalName("MacRomania");
 275         checkHistoricalName("MacSymbol");
 276         checkHistoricalName("MacThai");
 277         checkHistoricalName("MacTurkish");
 278         checkHistoricalName("MacUkraine");
 279 
 280         checkMappedName("x-MacArabic", "MacArabic");
 281         checkMappedName("x-MacCentralEurope", "MacCentralEurope");
 282         checkMappedName("x-MacCroatian", "MacCroatian");
 283         checkMappedName("x-MacCyrillic", "MacCyrillic");
 284         checkMappedName("x-MacDingbat", "MacDingbat");
 285         checkMappedName("x-MacGreek", "MacGreek");
 286         checkMappedName("x-MacHebrew", "MacHebrew");
 287         checkMappedName("x-MacIceland", "MacIceland");
 288         checkMappedName("x-MacRoman", "MacRoman");
 289         checkMappedName("x-MacRomania", "MacRomania");
 290         checkMappedName("x-MacSymbol", "MacSymbol");
 291         checkMappedName("x-MacThai", "MacThai");
 292         checkMappedName("x-MacTurkish", "MacTurkish");
 293         checkMappedName("x-MacUkraine", "MacUkraine");
 294 
 295         if (failed != 0)
 296             throw new Exception("Test Failed: " + failed);
 297         else
 298             System.out.println("Test Passed!");
 299     }
 300 
 301     private static void checkHistoricalName(String name) throws Exception {
 302         checkMappedName(name, name);
 303     }
 304 
 305     private static void checkMappedName(String alias, String canonical)
 306         throws Exception {
 307         InputStreamReader reader = new InputStreamReader(System.in, alias);
 308         if (!reader.getEncoding().equals(canonical)) {
 309             System.out.println("Failed canonical names : mismatch for " + alias
 310                                + " - expected " + canonical
 311                                + ", got " + reader.getEncoding());
 312             failed++;
 313         }
 314     }
 315 }