blob: 0f9203e864dd4596d8e0543406a44e79205a1cff [file] [log] [blame]
/*
* Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code 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 General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
* @test
* @bug 4625418
* @summary Tests XML <a href="http://download.java.net/jdk6/docs/technotes/guides/intl/encoding.doc.html">encoding</a>
* @author Sergey Malenkov
*
* @run main Test4625418 ASCII
* @run main Test4625418 Big5
* ?run main Test4625418 Big5-HKSCS
* ?run main Test4625418 Big5_HKSCS
* @run main Test4625418 Big5_Solaris
* ?run main Test4625418 Cp037
* @run main Test4625418 Cp1006
* ?run main Test4625418 Cp1025
* -run main Test4625418 Cp1026
* @run main Test4625418 Cp1046
* @run main Test4625418 Cp1047
* @run main Test4625418 Cp1097
* @run main Test4625418 Cp1098
* ?run main Test4625418 Cp1112
* ?run main Test4625418 Cp1122
* ?run main Test4625418 Cp1123
* @run main Test4625418 Cp1124
* ?run main Test4625418 Cp1140
* ?run main Test4625418 Cp1141
* ?run main Test4625418 Cp1142
* ?run main Test4625418 Cp1143
* ?run main Test4625418 Cp1144
* ?run main Test4625418 Cp1145
* ?run main Test4625418 Cp1146
* ?run main Test4625418 Cp1147
* ?run main Test4625418 Cp1148
* ?run main Test4625418 Cp1149
* @run main Test4625418 Cp1250
* @run main Test4625418 Cp1251
* @run main Test4625418 Cp1252
* @run main Test4625418 Cp1253
* @run main Test4625418 Cp1254
* @run main Test4625418 Cp1255
* @run main Test4625418 Cp1256
* @run main Test4625418 Cp1257
* @run main Test4625418 Cp1258
* ?run main Test4625418 Cp1381
* ?run main Test4625418 Cp1383
* ?run main Test4625418 Cp273
* ?run main Test4625418 Cp277
* ?run main Test4625418 Cp278
* ?run main Test4625418 Cp280
* ?run main Test4625418 Cp284
* ?run main Test4625418 Cp285
* ?run main Test4625418 Cp297
* ?run main Test4625418 Cp33722
* ?run main Test4625418 Cp420
* ?run main Test4625418 Cp424
* @run main Test4625418 Cp437
* ?run main Test4625418 Cp500
* ?run main Test4625418 Cp50220
* ?run main Test4625418 Cp50221
* @run main Test4625418 Cp737
* @run main Test4625418 Cp775
* -run main Test4625418 Cp834
* ?run main Test4625418 Cp838
* @run main Test4625418 Cp850
* @run main Test4625418 Cp852
* @run main Test4625418 Cp855
* @run main Test4625418 Cp856
* @run main Test4625418 Cp857
* @run main Test4625418 Cp858
* @run main Test4625418 Cp860
* @run main Test4625418 Cp861
* @run main Test4625418 Cp862
* @run main Test4625418 Cp863
* @run main Test4625418 Cp864
* @run main Test4625418 Cp865
* @run main Test4625418 Cp866
* @run main Test4625418 Cp868
* @run main Test4625418 Cp869
* ?run main Test4625418 Cp870
* ?run main Test4625418 Cp871
* @run main Test4625418 Cp874
* ?run main Test4625418 Cp875
* ?run main Test4625418 Cp918
* @run main Test4625418 Cp921
* @run main Test4625418 Cp922
* -run main Test4625418 Cp930
* @run main Test4625418 Cp933
* ?run main Test4625418 Cp935
* ?run main Test4625418 Cp937
* ?run main Test4625418 Cp939
* ?run main Test4625418 Cp942
* ?run main Test4625418 Cp942C
* @run main Test4625418 Cp943
* ?run main Test4625418 Cp943C
* @run main Test4625418 Cp948
* @run main Test4625418 Cp949
* ?run main Test4625418 Cp949C
* @run main Test4625418 Cp950
* @run main Test4625418 Cp964
* ?run main Test4625418 Cp970
* ?run main Test4625418 EUC-JP
* @run main Test4625418 EUC-KR
* @run main Test4625418 EUC_CN
* ?run main Test4625418 EUC_JP
* ?run main Test4625418 EUC_JP_LINUX
* ?run main Test4625418 EUC_JP_Solaris
* @run main Test4625418 EUC_KR
* ?run main Test4625418 EUC_TW
* @run main Test4625418 GB18030
* @run main Test4625418 GB2312
* @run main Test4625418 GBK
* ?run main Test4625418 IBM-Thai
* @run main Test4625418 IBM00858
* ?run main Test4625418 IBM01140
* ?run main Test4625418 IBM01141
* ?run main Test4625418 IBM01142
* ?run main Test4625418 IBM01143
* ?run main Test4625418 IBM01144
* ?run main Test4625418 IBM01145
* ?run main Test4625418 IBM01146
* ?run main Test4625418 IBM01147
* ?run main Test4625418 IBM01148
* ?run main Test4625418 IBM01149
* ?run main Test4625418 IBM037
* -run main Test4625418 IBM1026
* @run main Test4625418 IBM1047
* ?run main Test4625418 IBM273
* ?run main Test4625418 IBM277
* ?run main Test4625418 IBM278
* ?run main Test4625418 IBM280
* ?run main Test4625418 IBM284
* ?run main Test4625418 IBM285
* ?run main Test4625418 IBM297
* ?run main Test4625418 IBM420
* ?run main Test4625418 IBM424
* @run main Test4625418 IBM437
* ?run main Test4625418 IBM500
* @run main Test4625418 IBM775
* @run main Test4625418 IBM850
* @run main Test4625418 IBM852
* @run main Test4625418 IBM855
* @run main Test4625418 IBM857
* @run main Test4625418 IBM860
* @run main Test4625418 IBM861
* @run main Test4625418 IBM862
* @run main Test4625418 IBM863
* @run main Test4625418 IBM864
* @run main Test4625418 IBM865
* @run main Test4625418 IBM866
* @run main Test4625418 IBM868
* @run main Test4625418 IBM869
* ?run main Test4625418 IBM870
* ?run main Test4625418 IBM871
* ?run main Test4625418 IBM918
* ?run main Test4625418 ISCII91
* -run main Test4625418 ISO-2022-CN
* @run main Test4625418 ISO-2022-JP
* @run main Test4625418 ISO-2022-KR
* @run main Test4625418 ISO-8859-1
* @run main Test4625418 ISO-8859-13
* @run main Test4625418 ISO-8859-15
* @run main Test4625418 ISO-8859-2
* @run main Test4625418 ISO-8859-3
* @run main Test4625418 ISO-8859-4
* @run main Test4625418 ISO-8859-5
* @run main Test4625418 ISO-8859-6
* @run main Test4625418 ISO-8859-7
* @run main Test4625418 ISO-8859-8
* @run main Test4625418 ISO-8859-9
* -run main Test4625418 ISO2022CN
* @run main Test4625418 ISO2022JP
* @run main Test4625418 ISO2022KR
* -run main Test4625418 ISO2022_CN_CNS
* -run main Test4625418 ISO2022_CN_GB
* @run main Test4625418 ISO8859_1
* @run main Test4625418 ISO8859_13
* @run main Test4625418 ISO8859_15
* @run main Test4625418 ISO8859_2
* @run main Test4625418 ISO8859_3
* @run main Test4625418 ISO8859_4
* @run main Test4625418 ISO8859_5
* @run main Test4625418 ISO8859_6
* @run main Test4625418 ISO8859_7
* @run main Test4625418 ISO8859_8
* @run main Test4625418 ISO8859_9
* -run main Test4625418 JISAutoDetect
* ?run main Test4625418 JIS_X0201
* -run main Test4625418 JIS_X0212-1990
* @run main Test4625418 KOI8-R
* @run main Test4625418 KOI8-U
* @run main Test4625418 KOI8_R
* @run main Test4625418 KOI8_U
* @run main Test4625418 MS874
* ?run main Test4625418 MS932
* ?run main Test4625418 MS936
* @run main Test4625418 MS949
* @run main Test4625418 MS950
* ?run main Test4625418 MS950_HKSCS
* @run main Test4625418 MacArabic
* @run main Test4625418 MacCentralEurope
* @run main Test4625418 MacCroatian
* @run main Test4625418 MacCyrillic
* -run main Test4625418 MacDingbat
* @run main Test4625418 MacGreek
* @run main Test4625418 MacHebrew
* @run main Test4625418 MacIceland
* @run main Test4625418 MacRoman
* @run main Test4625418 MacRomania
* -run main Test4625418 MacSymbol
* @run main Test4625418 MacThai
* @run main Test4625418 MacTurkish
* @run main Test4625418 MacUkraine
* ?run main Test4625418 PCK
* ?run main Test4625418 SJIS
* ?run main Test4625418 Shift_JIS
* @run main Test4625418 TIS-620
* @run main Test4625418 TIS620
* @run main Test4625418 US-ASCII
* @run main Test4625418 UTF-16
* @run main Test4625418 UTF-16BE
* @run main Test4625418 UTF-16LE
* @run main Test4625418 UTF-32
* @run main Test4625418 UTF-32BE
* @run main Test4625418 UTF-32LE
* @run main Test4625418 UTF-8
* @run main Test4625418 UTF8
* @run main Test4625418 UTF_32
* @run main Test4625418 UTF_32BE
* -run main Test4625418 UTF_32BE_BOM
* @run main Test4625418 UTF_32LE
* -run main Test4625418 UTF_32LE_BOM
* @run main Test4625418 UnicodeBig
* @run main Test4625418 UnicodeBigUnmarked
* @run main Test4625418 UnicodeLittle
* @run main Test4625418 UnicodeLittleUnmarked
* @run main Test4625418 windows-1250
* @run main Test4625418 windows-1251
* @run main Test4625418 windows-1252
* @run main Test4625418 windows-1253
* @run main Test4625418 windows-1254
* @run main Test4625418 windows-1255
* @run main Test4625418 windows-1256
* @run main Test4625418 windows-1257
* @run main Test4625418 windows-1258
* ?run main Test4625418 windows-31j
* -run main Test4625418 x-Big5_Solaris
* ?run main Test4625418 x-EUC-TW
* @run main Test4625418 x-IBM1006
* ?run main Test4625418 x-IBM1025
* @run main Test4625418 x-IBM1046
* @run main Test4625418 x-IBM1097
* @run main Test4625418 x-IBM1098
* ?run main Test4625418 x-IBM1112
* ?run main Test4625418 x-IBM1122
* ?run main Test4625418 x-IBM1123
* @run main Test4625418 x-IBM1124
* ?run main Test4625418 x-IBM1381
* ?run main Test4625418 x-IBM1383
* ?run main Test4625418 x-IBM33722
* @run main Test4625418 x-IBM737
* -run main Test4625418 x-IBM834
* @run main Test4625418 x-IBM856
* @run main Test4625418 x-IBM874
* ?run main Test4625418 x-IBM875
* @run main Test4625418 x-IBM921
* @run main Test4625418 x-IBM922
* -run main Test4625418 x-IBM930
* @run main Test4625418 x-IBM933
* ?run main Test4625418 x-IBM935
* ?run main Test4625418 x-IBM937
* ?run main Test4625418 x-IBM939
* ?run main Test4625418 x-IBM942
* ?run main Test4625418 x-IBM942C
* @run main Test4625418 x-IBM943
* ?run main Test4625418 x-IBM943C
* @run main Test4625418 x-IBM948
* @run main Test4625418 x-IBM949
* ?run main Test4625418 x-IBM949C
* @run main Test4625418 x-IBM950
* @run main Test4625418 x-IBM964
* ?run main Test4625418 x-IBM970
* ?run main Test4625418 x-ISCII91
* -run main Test4625418 x-ISO2022-CN-CNS
* -run main Test4625418 x-ISO2022-CN-GB
* -run main Test4625418 x-JIS0208
* -run main Test4625418 x-JISAutoDetect
* @run main Test4625418 x-Johab
* ?run main Test4625418 x-MS950-HKSCS
* @run main Test4625418 x-MacArabic
* @run main Test4625418 x-MacCentralEurope
* @run main Test4625418 x-MacCroatian
* @run main Test4625418 x-MacCyrillic
* -run main Test4625418 x-MacDingbat
* @run main Test4625418 x-MacGreek
* @run main Test4625418 x-MacHebrew
* @run main Test4625418 x-MacIceland
* @run main Test4625418 x-MacRoman
* @run main Test4625418 x-MacRomania
* -run main Test4625418 x-MacSymbol
* @run main Test4625418 x-MacThai
* @run main Test4625418 x-MacTurkish
* @run main Test4625418 x-MacUkraine
* ?run main Test4625418 x-PCK
* @run main Test4625418 x-UTF-16LE-BOM
* -run main Test4625418 x-UTF-32BE-BOM
* -run main Test4625418 x-UTF-32LE-BOM
* ?run main Test4625418 x-euc-jp-linux
* ?run main Test4625418 x-eucJP-Open
* @run main Test4625418 x-iso-8859-11
* @run main Test4625418 x-mswin-936
* ?run main Test4625418 x-windows-50220
* ?run main Test4625418 x-windows-50221
* @run main Test4625418 x-windows-874
* @run main Test4625418 x-windows-949
* @run main Test4625418 x-windows-950
* ?run main Test4625418 x-windows-iso2022jp
*/
import java.beans.ExceptionListener;
import java.beans.XMLDecoder;
import java.beans.XMLEncoder;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.nio.charset.IllegalCharsetNameException;
import java.nio.charset.UnsupportedCharsetException;
public final class Test4625418 implements ExceptionListener {
public static void main(String[] args) {
new Test4625418(args[0]).test(createString(0x10000));
System.out.println("Test passed: " + args[0]);
}
private static String createString(int length) {
StringBuilder sb = new StringBuilder(length);
while (0 < length--)
sb.append((char) length);
return sb.toString();
}
private final String encoding;
private Test4625418(String encoding) {
this.encoding = encoding;
}
private void test(String string) {
try {
File file = new File("4625418." + this.encoding + ".xml");
FileOutputStream output = new FileOutputStream(file);
XMLEncoder encoder = new XMLEncoder(output, this.encoding, true, 0);
encoder.setExceptionListener(this);
encoder.writeObject(string);
encoder.close();
FileInputStream input = new FileInputStream(file);
XMLDecoder decoder = new XMLDecoder(input);
decoder.setExceptionListener(this);
Object object = decoder.readObject();
decoder.close();
if (!string.equals(object))
throw new Error(this.encoding + " - can't read properly");
file.delete();
}
catch (FileNotFoundException exception) {
throw new Error(this.encoding + " - file not found", exception);
}
catch (IllegalCharsetNameException exception) {
throw new Error(this.encoding + " - illegal charset name", exception);
}
catch (UnsupportedCharsetException exception) {
throw new Error(this.encoding + " - unsupported charset", exception);
}
catch (UnsupportedOperationException exception) {
throw new Error(this.encoding + " - unsupported encoder", exception);
}
}
public void exceptionThrown(Exception exception) {
throw new Error(this.encoding + " - internal", exception);
}
}