jdk/test/java/nio/charset/Charset/CharsetContainmentTest.java
author sherman
Fri, 01 Sep 2017 08:15:52 -0700
changeset 47115 5e68e293e7a1
parent 44115 bb4e971bf5d4
permissions -rw-r--r--
8186751: Add ISO-8859-16 Charset support Reviewed-by: alanb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4817
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
     1
/*
5506
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 4817
diff changeset
     2
 * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
4817
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
     4
 *
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
     7
 * published by the Free Software Foundation.
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
     8
 *
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    13
 * accompanied this code).
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    14
 *
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    18
 *
5506
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 4817
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 4817
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 4817
diff changeset
    21
 * questions.
4817
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    22
 */
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    23
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    24
/* @test
44115
bb4e971bf5d4 8176195: Fix misc module dependencies in jdk_core tests
xiaofeya
parents: 5506
diff changeset
    25
 * @bug 4626545 4696726
bb4e971bf5d4 8176195: Fix misc module dependencies in jdk_core tests
xiaofeya
parents: 5506
diff changeset
    26
 * @summary Checks the inter containment relationships between NIO charsets
bb4e971bf5d4 8176195: Fix misc module dependencies in jdk_core tests
xiaofeya
parents: 5506
diff changeset
    27
 * @modules jdk.charsets
4817
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    28
 */
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    29
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    30
import java.nio.charset.*;
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    31
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    32
public class CharsetContainmentTest {
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    33
    static String[] encodings =
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    34
        { "US-ASCII", "UTF-16", "UTF-16BE", "UTF-16LE", "UTF-8",
47115
5e68e293e7a1 8186751: Add ISO-8859-16 Charset support
sherman
parents: 44115
diff changeset
    35
          "windows-1252", "ISO-8859-1", "ISO-8859-2", "ISO-8859-3",
5e68e293e7a1 8186751: Add ISO-8859-16 Charset support
sherman
parents: 44115
diff changeset
    36
          "ISO-8859-4", "ISO-8859-5", "ISO-8859-6", "ISO-8859-7",
5e68e293e7a1 8186751: Add ISO-8859-16 Charset support
sherman
parents: 44115
diff changeset
    37
          "ISO-8859-8", "ISO-8859-9", "ISO-8859-13", "ISO-8859-15", "ISO-8859-16",
4817
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    38
          "ISO-2022-JP", "ISO-2022-KR",
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    39
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    40
          // Temporarily remove ISO-2022-CN-* charsets until full encoder/decoder
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    41
          // support is added (4673614)
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    42
          // "x-ISO-2022-CN-CNS", "x-ISO-2022-CN-GB",
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    43
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    44
          "x-ISCII91", "GBK", "GB18030", "Big5",
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    45
          "x-EUC-TW", "GB2312", "EUC-KR", "x-Johab", "Big5-HKSCS",
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    46
          "x-MS950-HKSCS", "windows-1251", "windows-1253", "windows-1254",
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    47
          "windows-1255", "windows-1256", "windows-1257", "windows-1258",
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    48
          "x-mswin-936", "x-windows-949", "x-windows-950", "windows-31j",
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    49
          "Shift_JIS", "EUC-JP", "KOI8-R", "TIS-620"
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    50
        };
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    51
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    52
    static String[][] contains = {
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    53
        { "US-ASCII"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    54
           encodings,
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    55
           encodings,
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    56
           encodings,
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    57
           encodings,
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    58
          {"US-ASCII", "windows-1252"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    59
          {"US-ASCII", "ISO-8859-1"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    60
          {"US-ASCII", "ISO-8859-2"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    61
          {"US-ASCII", "ISO-8859-3"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    62
          {"US-ASCII", "ISO-8859-4"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    63
          {"US-ASCII", "ISO-8859-5"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    64
          {"US-ASCII", "ISO-8859-6"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    65
          {"US-ASCII", "ISO-8859-7"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    66
          {"US-ASCII", "ISO-8859-8"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    67
          {"US-ASCII", "ISO-8859-9"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    68
          {"US-ASCII", "ISO-8859-13"},
47115
5e68e293e7a1 8186751: Add ISO-8859-16 Charset support
sherman
parents: 44115
diff changeset
    69
          {"US-ASCII", "ISO-8859-15"},
5e68e293e7a1 8186751: Add ISO-8859-16 Charset support
sherman
parents: 44115
diff changeset
    70
          {"US-ASCII", "ISO-8859-16"},
4817
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    71
          {"ISO-2022-JP"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    72
          {"ISO-2022-KR"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    73
          // Temporarily remove ISO-2022-CN-* charsets until full encoder/decoder
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    74
          // support is added (4673614)
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    75
          //{"x-ISO-2022-CN-CNS"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    76
          //{"x-ISO-2022-CN-GB"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    77
          {"US-ASCII", "x-ISCII91"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    78
          {"US-ASCII", "GBK"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    79
          encodings,
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    80
          {"US-ASCII", "Big5"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    81
          {"US-ASCII", "x-EUC-TW"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    82
          {"US-ASCII", "GB2312"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    83
          {"US-ASCII", "EUC-KR"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    84
          {"US-ASCII", "x-Johab"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    85
          {"US-ASCII", "Big5-HKSCS", "Big5"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    86
          {"US-ASCII", "x-MS950-HKSCS", "x-windows-950"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    87
          {"US-ASCII", "windows-1251"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    88
          {"US-ASCII", "windows-1253"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    89
          {"US-ASCII", "windows-1254"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    90
          {"US-ASCII", "windows-1255"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    91
          {"US-ASCII", "windows-1256"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    92
          {"US-ASCII", "windows-1257"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    93
          {"US-ASCII", "windows-1258"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    94
          {"US-ASCII", "x-mswin-936"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    95
          {"US-ASCII", "x-windows-949"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    96
          {"US-ASCII", "x-windows-950"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    97
          {"US-ASCII", "windows-31j" },
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    98
          {"US-ASCII", "Shift_JIS"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
    99
          {"US-ASCII", "EUC-JP"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
   100
          {"US-ASCII", "KOI8-R"},
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
   101
          {"US-ASCII", "TIS-620"}};
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
   102
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
   103
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
   104
    public static void main(String[] args) throws Exception {
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
   105
        for (int i = 0; i < encodings.length; i++) {
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
   106
            Charset c = Charset.forName(encodings[i]);
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
   107
                for (int j = 0 ; j < contains[i].length; j++) {
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
   108
                    if (c.contains(Charset.forName(contains[i][j])))
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
   109
                        continue;
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
   110
                    else {
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
   111
                        throw new Exception ("Error: charset " + encodings[i] +
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
   112
                                        "doesn't contain " + contains[i][j]);
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
   113
                    }
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
   114
                }
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
   115
        }
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
   116
    }
67f425ac409b 6920732: opensource test/java/nio/charset
sherman
parents:
diff changeset
   117
}