8025076: Fix for JDK-8017248 breaks jprt submission for non-unicode locales
Reviewed-by: naoto, ksrini
--- a/jdk/test/tools/launcher/8017248/ClassÁ.java Fri Sep 20 10:15:02 2013 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-public class ClassÁ {
- public static void main(String args[]) {
- System.out.println("Succes!");
- }
-}
--- a/jdk/test/tools/launcher/8017248/test.sh Fri Sep 20 10:15:02 2013 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-#!/bin/sh
-# @test test.sh
-# @bug 8017248
-# @summary Compiler Diacritics Issue
-# @run shell test.sh
-
-OSNAME=`uname -s`
-if [ "$OSNAME" == "Darwin" ]
-then
- rm *.class
- ${TESTJAVA}/bin/javac *.java
- ${TESTJAVA}/bin/java `echo *.class | cut -d. -f1`
-else
- echo Test is specific to Mac OS X, skipping.
- exit 0
-fi
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/tools/launcher/DiacriticTest.java Fri Sep 20 17:56:54 2013 +0400
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2013 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 8017248
+ * @summary Compiler Diacritics Issue
+ * @run main DiacriticTest
+ */
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+
+public class DiacriticTest extends TestHelper {
+
+ // NFD-normalized form of the class name
+ static String NAME_NFD="ClassA\u0301";
+ // NFC-normalized form of the same class name
+ static String NAME_NFC="Class\u00C1";
+
+ public static void main(String[] args) throws IOException {
+ if (!isMacOSX) {
+ System.out.println("This test is for Mac OS X only. Passing.");
+ return;
+ }
+
+ File sourceFile = new File(NAME_NFC + ".java");
+ String source = "public class " + NAME_NFC + " { " +
+ " public static void main(String args[]) {\n" +
+ " System.out.println(\"Success!\");\n" +
+ " }\n" +
+ "}\n";
+ ArrayList<String> content = new ArrayList<>();
+ content.add(source);
+ createFile(sourceFile, content);
+
+ HashMap<String, String> env = new HashMap<>();
+ env.put("LC_CTYPE", "UTF-8");
+
+ TestResult tr;
+ tr = doExec(env, javacCmd, NAME_NFD + ".java");
+ System.out.println(tr.testOutput);
+ if (!tr.isOK()) {
+ System.out.println(tr);
+ throw new RuntimeException("Compilation failed");
+ }
+ tr = doExec(env, javaCmd, "-cp", ".", NAME_NFD);
+ System.out.println(tr.testOutput);
+ if (!tr.isOK()) {
+ System.out.println(tr);
+ throw new RuntimeException("Test execution failed");
+ }
+ }
+}