Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions jdk/make/data/charsetmapping/IBM943.c2b
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#
# source: 34B003AF.RPMAP130
# c->b only entries
#
815C 2015
8160 FF5E
8161 2225
817C FF0D
88A0 555E
898B 7130
89A8 9DD7
8A9A 5699
8BA0 4FE0
8BEB 8EC0
8C71 7E6B
8C74 8346
8CB2 9E7C
8D8D 9EB4
8DF2 6805
8EC6 5C62
8F4A 7E61
8FD3 8523
8FDD 91AC
90E4 87EC
917E 6414
9189 7626
91CB 9A52
925C 7C1E
92CD 6451
9355 5861
935E 985A
9398 79B1
93C0 7006
9458 56CA
948D 525D
94AC 6F51
94AE 91B1
966A 9830
96CB 9EB5
9789 840A
9858 881F
9BA0 5C5B
9DB7 6522
9E94 688E
E379 7E48
E445 8141
E8F6 9839
FA55 FFE4
FA59 F86F
67 changes: 64 additions & 3 deletions jdk/test/sun/nio/cs/TestIBMBugs.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2008, 2020, 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
Expand All @@ -22,8 +22,10 @@
*/

/* @test
@bug 6371437 6371422 6371416 6371619 5058184 6371431 6639450 6569191 6577466
@summary Check if the problems reported in above bugs have been fixed
* @bug 6371437 6371422 6371416 6371619 5058184 6371431 6639450 6569191 6577466
* 8235834
* @summary Check if the problems reported in above bugs have been fixed
* @modules jdk.charsets
Comment on lines +27 to +28
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These two lines are the issue. These are not part of head-stream patch. Please remove them and then this will be a clean patch.

*/

import java.io.*;
Expand Down Expand Up @@ -172,6 +174,64 @@ private static void bug6577466 () throws Exception {
}
}

// Following test data is for 8235834
private static final byte[] byteIBM943c2b = new byte[] {
(byte)0x81, (byte)0x5C, (byte)0x81, (byte)0x60,
(byte)0x81, (byte)0x61, (byte)0x81, (byte)0x7C,
(byte)0x88, (byte)0xA0, (byte)0x89, (byte)0x8B,
(byte)0x89, (byte)0xA8, (byte)0x8A, (byte)0x9A,
(byte)0x8B, (byte)0xA0, (byte)0x8B, (byte)0xEB,
(byte)0x8C, (byte)0x71, (byte)0x8C, (byte)0x74,
(byte)0x8C, (byte)0xB2, (byte)0x8D, (byte)0x8D,
(byte)0x8D, (byte)0xF2, (byte)0x8E, (byte)0xC6,
(byte)0x8F, (byte)0x4A, (byte)0x8F, (byte)0xD3,
(byte)0x8F, (byte)0xDD, (byte)0x90, (byte)0xE4,
(byte)0x91, (byte)0x7E, (byte)0x91, (byte)0x89,
(byte)0x91, (byte)0xCB, (byte)0x92, (byte)0x5C,
(byte)0x92, (byte)0xCD, (byte)0x93, (byte)0x55,
(byte)0x93, (byte)0x5E, (byte)0x93, (byte)0x98,
(byte)0x93, (byte)0xC0, (byte)0x94, (byte)0x58,
(byte)0x94, (byte)0x8D, (byte)0x94, (byte)0xAC,
(byte)0x94, (byte)0xAE, (byte)0x96, (byte)0x6A,
(byte)0x96, (byte)0xCB, (byte)0x97, (byte)0x89,
(byte)0x98, (byte)0x58, (byte)0x9B, (byte)0xA0,
(byte)0x9D, (byte)0xB7, (byte)0x9E, (byte)0x94,
(byte)0xE3, (byte)0x79, (byte)0xE4, (byte)0x45,
(byte)0xE8, (byte)0xF6, (byte)0xFA, (byte)0x55,
(byte)0xFA, (byte)0x59,
};

private static final String strIBM943c2b1 =
"\u2015\uFF5E\u2225\uFF0D\u555E\u7130\u9DD7\u5699" +
"\u4FE0\u8EC0\u7E6B\u8346\u9E7C\u9EB4\u6805\u5C62" +
"\u7E61\u8523\u91AC\u87EC\u6414\u7626\u9A52\u7C1E" +
"\u6451\u5861\u985A\u79B1\u7006\u56CA\u525D\u6F51" +
"\u91B1\u9830\u9EB5\u840A\u881F\u5C5B\u6522\u688E" +
"\u7E48\u8141\u9839\uFFE4\uF86F";

private static final String strIBM943c2b2 =
"\u2014\u301C\u2016\u2212\u5516\u7114\u9D0E\u565B" +
"\u4FA0\u8EAF\u7E4B\u834A\u9E78\u9EB9\u67F5\u5C61" +
"\u7E4D\u848B\u91A4\u8749\u63BB\u75E9\u9A28\u7BAA" +
"\u63B4\u586B\u985B\u7977\u6D9C\u56A2\u5265\u6E8C" +
"\u9197\u982C\u9EBA\u83B1\u874B\u5C4F\u6505\u688D" +
"\u7E66\u80FC\u983D\u00A6\u2116";

private static void bug8235834 () throws Exception {
// 8235834 affects IBM-943 and IBM-943C encoder.
// The decoded results of the corresponding characters of IBM-943
// and IBM-943C is the same.
for (String csName : new String[] {"x-IBM943", "x-IBM943C"}) {
Charset cs = Charset.forName(csName);
if (!Arrays.equals(byteIBM943c2b, strIBM943c2b1.getBytes(cs))) {
throw new Exception(csName+" failed to encode");
}
if (!strIBM943c2b2.equals(new String(byteIBM943c2b, cs))) {
throw new Exception(csName+" failed to round-trip conversion");
}
}
}

public static void main (String[] args) throws Exception {
bug6577466();
// need to be tested before any other IBM949C test case
Expand All @@ -182,5 +242,6 @@ public static void main (String[] args) throws Exception {
bug6371619();
bug6371431();
bug6569191();
bug8235834();
}
}