8183378: Refactor java/lang/System/MacEncoding/MacJNUEncoding.sh to java
Reviewed-by: bchristi, xiaofeya
--- a/jdk/test/java/lang/System/MacEncoding/ExpectedEncoding.java Fri Jul 07 03:09:23 2017 +0000
+++ b/jdk/test/java/lang/System/MacEncoding/ExpectedEncoding.java Fri Jul 07 12:42:53 2017 +0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2017, 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
@@ -43,9 +43,9 @@
if ("skip".equals(expectFileEnc)) {
System.err.println("Expected file.encoding is \"skip\", ignoring");
} else {
- System.err.println("Expected file.encoding: " + expectFileEnc);
- System.err.println("Actual file.encoding: " + fileEnc);
if (fileEnc == null || !fileEnc.equals(expectFileEnc)) {
+ System.err.println("Expected file.encoding: " + expectFileEnc);
+ System.err.println("Actual file.encoding: " + fileEnc);
failed = true;
}
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/lang/System/MacEncoding/MacJNUEncoding.java Fri Jul 07 12:42:53 2017 +0800
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2017, 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 8003228
+ * @summary Test the value of sun.jnu.encoding on Mac
+ * @requires (os.family == "mac")
+ * @library /test/lib
+ * @build jdk.test.lib.process.*
+ * ExpectedEncoding
+ * @run main MacJNUEncoding US-ASCII UTF-8 C
+ * @run main MacJNUEncoding UTF-8 UTF-8 en_US.UTF-8
+ */
+
+import java.util.Map;
+
+import jdk.test.lib.process.ProcessTools;
+
+public class MacJNUEncoding {
+
+ public static void main(String[] args) throws Exception {
+ if (args.length != 3) {
+ System.out.println("Usage:");
+ System.out.println(" java MacJNUEncoding"
+ + " <expected file.encoding> <expected sun.jnu.encoding> <locale>");
+ throw new IllegalArgumentException("missing arguments");
+ }
+
+ final String locale = args[2];
+ System.out.println("Running test for locale: " + locale);
+ ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(true,
+ ExpectedEncoding.class.getName(), args[0], args[1]);
+ Map<String, String> env = pb.environment();
+ env.put("LANG", locale);
+ env.put("LC_ALL", locale);
+ ProcessTools.executeProcess(pb)
+ .outputTo(System.out)
+ .errorTo(System.err)
+ .shouldHaveExitValue(0);
+ }
+}
--- a/jdk/test/java/lang/System/MacEncoding/MacJNUEncoding.sh Fri Jul 07 03:09:23 2017 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright (c) 2012, 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 8003228
-# @summary Test the value of sun.jnu.encoding on Mac
-# @author Brent Christian
-#
-# @run shell MacJNUEncoding.sh
-
-# Only run test on Mac
-OS=`uname -s`
-case "$OS" in
- Darwin ) ;;
- * )
- exit 0
- ;;
-esac
-
-if [ "${TESTJAVA}" = "" ]
-then
- echo "TESTJAVA not set. Test cannot execute. Failed."
- exit 1
-fi
-
-if [ "${COMPILEJAVA}" = "" ]; then
- COMPILEJAVA="${TESTJAVA}"
-fi
-
-
-if [ "${TESTSRC}" = "" ]
-then
- echo "TESTSRC not set. Test cannot execute. Failed."
- exit 1
-fi
-
-if [ "${TESTCLASSES}" = "" ]
-then
- echo "TESTCLASSES not set. Test cannot execute. Failed."
- exit 1
-fi
-
-JAVAC="${COMPILEJAVA}"/bin/javac
-JAVA="${TESTJAVA}"/bin/java
-
-echo "Building test classes..."
-"$JAVAC" ${TESTJAVACOPTS} ${TESTTOOLVMOPTS} -d "${TESTCLASSES}" "${TESTSRC}"/ExpectedEncoding.java
-
-echo ""
-echo "Running test for C locale"
-export LANG=C
-export LC_ALL=C
-"${JAVA}" ${TESTVMOPTS} -classpath "${TESTCLASSES}" ExpectedEncoding US-ASCII UTF-8
-result1=$?
-
-echo ""
-echo "Running test for en_US.UTF-8 locale"
-export LANG=en_US.UTF-8
-export LC_ALL=en_US.UTF-8
-"${JAVA}" ${TESTVMOPTS} -classpath "${TESTCLASSES}" ExpectedEncoding UTF-8 UTF-8
-result2=$?
-
-echo ""
-echo "Cleanup"
-rm ${TESTCLASSES}/ExpectedEncoding.class
-
-if [ ${result1} -ne 0 ] ; then
- echo "Test failed for C locale"
- echo " LANG=\"${LANG}\""
- echo " LC_ALL=\"${LC_ALL}\""
- exit ${result1}
-fi
-if [ ${result2} -ne 0 ] ; then
- echo "Test failed for en_US.UTF-8 locale"
- echo " LANG=\"${LANG}\""
- echo " LC_ALL=\"${LC_ALL}\""
- exit ${result2}
-fi
-exit 0
-