1
1
/*
2
- * Copyright (c) 2008, 2013 , Oracle and/or its affiliates. All rights reserved.
2
+ * Copyright (c) 2008, 2020 , Oracle and/or its affiliates. All rights reserved.
3
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
4
*
5
5
* This code is free software; you can redistribute it and/or modify it
22
22
*/
23
23
24
24
/* @test
25
- @bug 6371437 6371422 6371416 6371619 5058184 6371431 6639450 6569191 6577466
26
- @summary Check if the problems reported in above bugs have been fixed
25
+ @bug 6371437 6371422 6371416 6371619 5058184 6371431 6639450 6569191 6577466 8235834
27
26
*/
28
27
29
28
import java .io .*;
30
29
import java .nio .*;
31
30
import java .nio .charset .*;
31
+ import java .util .Arrays ;
32
32
33
33
public class TestIBMBugs {
34
34
@@ -172,6 +172,63 @@ private static void bug6577466 () throws Exception {
172
172
}
173
173
}
174
174
175
+ // Following test data is for 8235834
176
+ private static final byte [] byteIBM943c2b = new byte [] {
177
+ (byte )0x81 , (byte )0x5C , (byte )0x81 , (byte )0x60 ,
178
+ (byte )0x81 , (byte )0x61 , (byte )0x81 , (byte )0x7C ,
179
+ (byte )0x88 , (byte )0xA0 , (byte )0x89 , (byte )0x8B ,
180
+ (byte )0x89 , (byte )0xA8 , (byte )0x8A , (byte )0x9A ,
181
+ (byte )0x8B , (byte )0xA0 , (byte )0x8B , (byte )0xEB ,
182
+ (byte )0x8C , (byte )0x71 , (byte )0x8C , (byte )0x74 ,
183
+ (byte )0x8C , (byte )0xB2 , (byte )0x8D , (byte )0x8D ,
184
+ (byte )0x8D , (byte )0xF2 , (byte )0x8E , (byte )0xC6 ,
185
+ (byte )0x8F , (byte )0x4A , (byte )0x8F , (byte )0xD3 ,
186
+ (byte )0x8F , (byte )0xDD , (byte )0x90 , (byte )0xE4 ,
187
+ (byte )0x91 , (byte )0x7E , (byte )0x91 , (byte )0x89 ,
188
+ (byte )0x91 , (byte )0xCB , (byte )0x92 , (byte )0x5C ,
189
+ (byte )0x92 , (byte )0xCD , (byte )0x93 , (byte )0x55 ,
190
+ (byte )0x93 , (byte )0x5E , (byte )0x93 , (byte )0x98 ,
191
+ (byte )0x93 , (byte )0xC0 , (byte )0x94 , (byte )0x58 ,
192
+ (byte )0x94 , (byte )0x8D , (byte )0x94 , (byte )0xAC ,
193
+ (byte )0x94 , (byte )0xAE , (byte )0x96 , (byte )0x6A ,
194
+ (byte )0x96 , (byte )0xCB , (byte )0x97 , (byte )0x89 ,
195
+ (byte )0x98 , (byte )0x58 , (byte )0x9B , (byte )0xA0 ,
196
+ (byte )0x9D , (byte )0xB7 , (byte )0x9E , (byte )0x94 ,
197
+ (byte )0xE3 , (byte )0x79 , (byte )0xE4 , (byte )0x45 ,
198
+ (byte )0xE8 , (byte )0xF6 , (byte )0xFA , (byte )0x55 ,
199
+ (byte )0xFA , (byte )0x59 ,
200
+ };
201
+
202
+ private static final String strIBM943c2b1 =
203
+ "\u2015 \uFF5E \u2225 \uFF0D \u555E \u7130 \u9DD7 \u5699 " +
204
+ "\u4FE0 \u8EC0 \u7E6B \u8346 \u9E7C \u9EB4 \u6805 \u5C62 " +
205
+ "\u7E61 \u8523 \u91AC \u87EC \u6414 \u7626 \u9A52 \u7C1E " +
206
+ "\u6451 \u5861 \u985A \u79B1 \u7006 \u56CA \u525D \u6F51 " +
207
+ "\u91B1 \u9830 \u9EB5 \u840A \u881F \u5C5B \u6522 \u688E " +
208
+ "\u7E48 \u8141 \u9839 \uFFE4 \uF86F " ;
209
+
210
+ private static final String strIBM943c2b2 =
211
+ "\u2014 \u301C \u2016 \u2212 \u5516 \u7114 \u9D0E \u565B " +
212
+ "\u4FA0 \u8EAF \u7E4B \u834A \u9E78 \u9EB9 \u67F5 \u5C61 " +
213
+ "\u7E4D \u848B \u91A4 \u8749 \u63BB \u75E9 \u9A28 \u7BAA " +
214
+ "\u63B4 \u586B \u985B \u7977 \u6D9C \u56A2 \u5265 \u6E8C " +
215
+ "\u9197 \u982C \u9EBA \u83B1 \u874B \u5C4F \u6505 \u688D " +
216
+ "\u7E66 \u80FC \u983D \u00A6 \u2116 " ;
217
+
218
+ private static void bug8235834 () throws Exception {
219
+ // 8235834 affects IBM-943 and IBM-943C encoder.
220
+ // The decoded results of the corresponding characters of IBM-943
221
+ // and IBM-943C is the same.
222
+ for (String csName : new String [] {"x-IBM943" , "x-IBM943C" }) {
223
+ Charset cs = Charset .forName (csName );
224
+ if (!Arrays .equals (byteIBM943c2b , strIBM943c2b1 .getBytes (cs ))) {
225
+ throw new Exception (csName +" failed to encode" );
226
+ }
227
+ if (!strIBM943c2b2 .equals (new String (byteIBM943c2b , cs ))) {
228
+ throw new Exception (csName +" failed to round-trip conversion" );
229
+ }
230
+ }
231
+ }
175
232
public static void main (String [] args ) throws Exception {
176
233
bug6577466 ();
177
234
// need to be tested before any other IBM949C test case
@@ -182,5 +239,6 @@ public static void main (String[] args) throws Exception {
182
239
bug6371619 ();
183
240
bug6371431 ();
184
241
bug6569191 ();
242
+ bug8235834 ();
185
243
}
186
244
}
0 commit comments