8166139: Refactor java/net shell cases to java
Reviewed-by: chegar, rriggs
diff --git a/jdk/test/java/net/Socket/OldSocketImpl.sh b/jdk/test/java/net/Socket/OldSocketImpl.sh
deleted file mode 100644
index 70b92af..0000000
--- a/jdk/test/java/net/Socket/OldSocketImpl.sh
+++ /dev/null
@@ -1,61 +0,0 @@
-#
-# Copyright (c) 2006, 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 6449565
-# @run shell/timeout=140 OldSocketImpl.sh
-# @summary Pre-1.4 SocketImpl no longer supported
-
-OS=`uname -s`
-case "$OS" in
- SunOS | Linux | Darwin | AIX )
- PS=":"
- FS="/"
- ;;
- CYGWIN* )
- PS=";"
- FS="/"
- ;;
- Windows* )
- PS=";"
- FS="\\"
- ;;
- * )
- echo "Unrecognized system!"
- exit 1;
- ;;
-esac
-
-# no need to compile the test. It is already compiled
-# with 1.3 and in OldStyleImpl.jar
-
-# run
-${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} -cp ${TESTSRC}${FS}OldSocketImpl.jar OldSocketImpl
-result=$?
-if [ "$result" -ne "0" ]; then
- exit 1
-fi
-
-# no failures, exit.
-exit 0
-
diff --git a/jdk/test/java/net/Socket/OldSocketImplTestDriver.java b/jdk/test/java/net/Socket/OldSocketImplTestDriver.java
new file mode 100644
index 0000000..840579f
--- /dev/null
+++ b/jdk/test/java/net/Socket/OldSocketImplTestDriver.java
@@ -0,0 +1,46 @@
+/*
+ * 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.
+ */
+
+import jdk.test.lib.process.ProcessTools;
+
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
+/**
+ * @test
+ * @bug 6449565
+ * @library /test/lib
+ * @build jdk.test.lib.process.ProcessTools
+ * @run main OldSocketImplTestDriver
+ * @summary Test driver for OdlSocketImpl
+ */
+public class OldSocketImplTestDriver {
+ public static void main(String[] args) throws Throwable {
+ Path jar = Paths.get(System.getProperty("test.src"),
+ "OldSocketImpl.jar");
+ ProcessTools.executeTestJava("-cp", jar.toString(), "OldSocketImpl")
+ .outputTo(System.out)
+ .errorTo(System.out)
+ .shouldHaveExitValue(0);
+ }
+}
diff --git a/jdk/test/java/net/URL/B5086147.java b/jdk/test/java/net/URL/B5086147.java
index 284b4f6..4726091 100644
--- a/jdk/test/java/net/URL/B5086147.java
+++ b/jdk/test/java/net/URL/B5086147.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -24,12 +24,13 @@
/**
* @test
* @bug 5086147
- * @run shell B5086147.sh
+ * @requires (os.family == "windows")
+ * @run main B5086147
* @summary File,URI,URL conversions are strange for UNC path
*/
-import java.net.*;
-import java.io.*;
+import java.io.File;
+import java.net.URI;
public class B5086147 {
public static final void main( String[] aaParamters ) throws Exception{
diff --git a/jdk/test/java/net/URL/B5086147.sh b/jdk/test/java/net/URL/B5086147.sh
deleted file mode 100644
index 772d7a3..0000000
--- a/jdk/test/java/net/URL/B5086147.sh
+++ /dev/null
@@ -1,56 +0,0 @@
-#! /bin/sh
-
-#
-# Copyright (c) 2005, 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.
-#
-
-
-OS=`uname -s`
-case "$OS" in
- SunOS | Linux | Darwin | AIX )
- exit 0
- ;;
- CYGWIN* )
- PS=";"
- FS="/"
- ;;
- Windows* )
- PS=";"
- FS="\\"
- ;;
- * )
- echo "Unrecognized system!"
- exit 1;
- ;;
-esac
-${COMPILEJAVA}${FS}bin${FS}javac ${TESTJAVACOPTS} ${TESTTOOLVMOPTS} -d . ${TESTSRC}${FS}B5086147.java
-
-failures=0
-
-echo ''
-${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} B5086147
-if [ $? != 0 ]; then failures=`expr $failures + 1`; fi
-
-if [ "$failures" != "0" ]; then
- echo $failures tests failed
- exit 1;
-fi
diff --git a/jdk/test/java/net/URLClassLoader/B5077773.java b/jdk/test/java/net/URLClassLoader/B5077773.java
deleted file mode 100644
index 28a4a4c..0000000
--- a/jdk/test/java/net/URLClassLoader/B5077773.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2004, 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.
- */
-
-import java.io.*;
-import java.net.*;
-
-public class B5077773 {
-
- public static void main(String[] args) throws Exception {
- URLClassLoader loader = new URLClassLoader (new URL[] {new URL("file:foo.jar")});
- /* This test will fail if the file below is removed from rt.jar */
- InputStream is = loader.getResourceAsStream ("javax/swing/text/rtf/charsets/mac.txt");
- if (is == null) {
- System.out.println ("could not find mac.txt");
- return;
- }
- int c=0;
- while ((is.read()) != -1) {
- c++;
- }
- if (c == 26) /* size of bad file */ {
- throw new RuntimeException ("Wrong mac.txt file was loaded");
- }
- }
-}
diff --git a/jdk/test/java/net/URLClassLoader/B5077773.sh b/jdk/test/java/net/URLClassLoader/B5077773.sh
deleted file mode 100644
index 3b52698..0000000
--- a/jdk/test/java/net/URLClassLoader/B5077773.sh
+++ /dev/null
@@ -1,66 +0,0 @@
-#! /bin/sh
-
-#
-# Copyright (c) 2004, 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
-# @author Michael McMahon
-# @bug 5077773
-# @summary Change in behaviour w.r.t jdk1.4.2 when loading resourcebundles
-#
-# ${TESTJAVA} is pointing to the jre
-#
-# set platform-dependent variables
-
-OS=`uname -s`
-case "$OS" in
- SunOS | Darwin | AIX )
- PS=":"
- FS="/"
- ;;
- Linux )
- PS=":"
- FS="/"
- ;;
- CYGWIN* )
- PS=";"
- FS="/"
- ;;
- Windows* )
- PS=";"
- FS="\\"
- ;;
- * )
- echo "Unrecognized system!"
- exit 1;
- ;;
-esac
-
-cp ${TESTSRC}${FS}foo.jar .
-
-${COMPILEJAVA}${FS}bin${FS}javac ${TESTJAVACOPTS} ${TESTTOOLVMOPTS} -d . \
- ${TESTSRC}${FS}B5077773.java
-
-WD=`pwd`
-${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} B5077773
-
diff --git a/jdk/test/java/net/URLClassLoader/closetest/CloseTest.java b/jdk/test/java/net/URLClassLoader/closetest/CloseTest.java
index 47feb49..c25cb3e 100644
--- a/jdk/test/java/net/URLClassLoader/closetest/CloseTest.java
+++ b/jdk/test/java/net/URLClassLoader/closetest/CloseTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2009, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 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
@@ -26,24 +26,32 @@
* @bug 4167874
* @modules java.logging
* jdk.httpserver
+ * jdk.compiler
* @library ../../../../com/sun/net/httpserver
- * @library /lib/testlibrary
- * @build FileServerHandler jdk.testlibrary.FileUtils
- * @run shell build.sh
+ * /lib/testlibrary
+ * @build FileServerHandler jdk.testlibrary.FileUtils JarUtils CompilerUtils
* @run main/othervm CloseTest
* @summary URL-downloaded jar files can consume all available file descriptors
*/
import java.io.File;
+import java.io.IOException;
import java.lang.reflect.Method;
import java.net.URLClassLoader;
import java.net.InetSocketAddress;
import java.net.URL;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
import com.sun.net.httpserver.HttpContext;
import com.sun.net.httpserver.HttpServer;
-public class CloseTest extends Common {
+import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
+public class CloseTest extends Common {
+ private static final String WORK_DIR = System.getProperty("user.dir")
+ + "/";
//
// needs two jar files test1.jar and test2.jar with following structure
//
@@ -54,39 +62,31 @@
//
// and a directory hierarchy with the same structure/contents
- public static void main (String args[]) throws Exception {
+ public static void main(String args[]) throws Exception {
+ setup();
- String workdir = System.getProperty("test.classes");
- if (workdir == null) {
- workdir = args[0];
- }
- if (!workdir.endsWith("/")) {
- workdir = workdir+"/";
- }
+ startHttpServer(WORK_DIR + "serverRoot/");
- startHttpServer (workdir+"serverRoot/");
-
- String testjar = workdir + "test.jar";
- copyFile (workdir+"test1.jar", testjar);
- test (testjar, 1);
+ String testjar = WORK_DIR + "test.jar";
+ copyFile(WORK_DIR + "test1.jar", testjar);
+ test(testjar, 1);
// repeat test with different implementation
// of test.jar (whose TestClass.getValue() returns 2
-
- copyFile (workdir+"test2.jar", testjar);
- test (testjar, 2);
+ copyFile(WORK_DIR + "test2.jar", testjar);
+ test(testjar, 2);
// repeat test using a directory of files
- String testdir=workdir+"testdir/";
- rm_minus_rf (new File(testdir));
- copyDir (workdir+"test1/", testdir);
- test (testdir, 1);
+ String testdir = WORK_DIR + "testdir/";
+ rm_minus_rf(new File(testdir));
+ copyDir(WORK_DIR + "test1/", testdir);
+ test(testdir, 1);
- testdir=workdir+"testdir/";
- rm_minus_rf (new File(testdir));
- copyDir (workdir+"test2/", testdir);
- test (testdir, 2);
- getHttpServer().stop (3);
+ testdir = WORK_DIR + "testdir/";
+ rm_minus_rf(new File(testdir));
+ copyDir(WORK_DIR + "test2/", testdir);
+ test(testdir, 2);
+ getHttpServer().stop(3);
}
// create a loader on jarfile (or directory), plus a http loader
@@ -98,47 +98,48 @@
// check existing classes can be loaded
// check boot classes can be loaded
- static void test (String name, int expectedValue) throws Exception {
- URL url = new URL ("file", null, name);
+ static void test(String name, int expectedValue) throws Exception {
+
+ URL url = new URL("file", null, name);
URL url2 = getServerURL();
- System.out.println ("Doing tests with URL: " + url + " and " + url2);
+ System.out.println("Doing tests with URL: " + url + " and " + url2);
URL[] urls = new URL[2];
- urls[0] = url;
- urls[1] = url2;
- URLClassLoader loader = new URLClassLoader (urls);
- Class testclass = loadClass ("com.foo.TestClass", loader, true);
- Class class2 = loadClass ("Test", loader, true); // from http
+ urls[0] = url;
+ urls[1] = url2;
+ URLClassLoader loader = new URLClassLoader(urls);
+ Class testclass = loadClass("com.foo.TestClass", loader, true);
+ Class class2 = loadClass("Test", loader, true); // from http
class2.newInstance();
Object test = testclass.newInstance();
Method method = testclass.getDeclaredMethods()[0]; // int getValue();
- int res = (Integer) method.invoke (test);
+ int res = (Integer) method.invoke(test);
if (res != expectedValue) {
- throw new RuntimeException ("wrong value from getValue() ["+res+
- "/"+expectedValue+"]");
+ throw new RuntimeException("wrong value from getValue() [" + res +
+ "/" + expectedValue + "]");
}
// should find /resource1
- URL u1 = loader.findResource ("com/foo/Resource1");
+ URL u1 = loader.findResource("com/foo/Resource1");
if (u1 == null) {
- throw new RuntimeException ("can't find com/foo/Resource1 in test1.jar");
+ throw new RuntimeException("can't find com/foo/Resource1 in test1.jar");
}
- loader.close ();
+ loader.close();
// should NOT find /resource2 even though it is in jar
- URL u2 = loader.findResource ("com/foo/Resource2");
+ URL u2 = loader.findResource("com/foo/Resource2");
if (u2 != null) {
- throw new RuntimeException ("com/foo/Resource2 unexpected in test1.jar");
+ throw new RuntimeException("com/foo/Resource2 unexpected in test1.jar");
}
// load tests
- loadClass ("com.foo.TestClass1", loader, false);
- loadClass ("com.foo.TestClass", loader, true);
- loadClass ("java.util.ArrayList", loader, true);
+ loadClass("com.foo.TestClass1", loader, false);
+ loadClass("com.foo.TestClass", loader, true);
+ loadClass("java.util.ArrayList", loader, true);
// now check we can delete the path
- rm_minus_rf (new File(name));
- System.out.println (" ... OK");
+ rm_minus_rf(new File(name));
+ System.out.println(" ... OK");
}
static HttpServer httpServer;
@@ -147,17 +148,54 @@
return httpServer;
}
- static URL getServerURL () throws Exception {
+ static URL getServerURL() throws Exception {
int port = httpServer.getAddress().getPort();
- String s = "http://127.0.0.1:"+port+"/";
+ String s = "http://127.0.0.1:" + port + "/";
return new URL(s);
}
- static void startHttpServer (String docroot) throws Exception {
- httpServer = HttpServer.create (new InetSocketAddress(0), 10);
- HttpContext ctx = httpServer.createContext (
+ static void startHttpServer(String docroot) throws Exception {
+ httpServer = HttpServer.create(new InetSocketAddress(0), 10);
+ HttpContext ctx = httpServer.createContext(
"/", new FileServerHandler(docroot)
);
httpServer.start();
}
+
+ /**
+ * Prepare jars files for the tests
+ */
+ private static void setup () throws IOException {
+ String[] tests = new String[]{"test1", "test2"};
+ Path workDir = Paths.get(WORK_DIR);
+ Path testSrc = Paths.get(System.getProperty("test.src"));
+ for (String test : tests) {
+ Path testSrcDir = testSrc.resolve(test);
+ Path testTargetDir = workDir.resolve(test);
+ // Compile sources for corresponding test
+ CompilerUtils.compile(testSrcDir, testTargetDir);
+ // Copy all resources
+ Path packages = Paths.get("com", "foo");
+ Path copySrcDir = testSrcDir.resolve(packages);
+ Path copyTargetDir = testTargetDir.resolve(packages);
+ Files.createDirectories(copyTargetDir);
+ Path res1 = Paths.get("Resource1");
+ Path res2 = Paths.get("Resource2");
+ Files.copy(copySrcDir.resolve(res1), copyTargetDir.resolve(res1),
+ REPLACE_EXISTING);
+ Files.copy(copySrcDir.resolve(res2), copyTargetDir.resolve(res2),
+ REPLACE_EXISTING);
+ // Create jar
+ JarUtils.createJarFile(workDir.resolve(test + ".jar"), testTargetDir);
+ }
+
+ // Copy and compile server test class
+ Path serverRoot = Paths.get("serverRoot");
+ Path targetDir = workDir.resolve(serverRoot);
+ Path file = Paths.get("Test.java");
+ Files.createDirectories(targetDir);
+ Files.copy(testSrc.resolve(serverRoot).resolve(file),
+ targetDir.resolve(file), REPLACE_EXISTING);
+ CompilerUtils.compile(targetDir, targetDir);
+ }
}
diff --git a/jdk/test/java/net/URLClassLoader/closetest/GetResourceAsStream.java b/jdk/test/java/net/URLClassLoader/closetest/GetResourceAsStream.java
index a11d58a..dac1265 100644
--- a/jdk/test/java/net/URLClassLoader/closetest/GetResourceAsStream.java
+++ b/jdk/test/java/net/URLClassLoader/closetest/GetResourceAsStream.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -25,15 +25,24 @@
* @test
* @bug 6899919
* @library /lib/testlibrary
- * @build jdk.testlibrary.FileUtils
- * @run shell build2.sh
+ * @modules jdk.compiler
+ * @build jdk.testlibrary.FileUtils JarUtils CompilerUtils
* @run main/othervm GetResourceAsStream
*/
-import java.io.*;
-import java.net.*;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.StandardCopyOption;
+import java.nio.file.StandardOpenOption;
public class GetResourceAsStream extends Common {
+ private static final String WORK_DIR = System.getProperty("user.dir");
/*
* We simply test various scenarios with class/resource files
@@ -42,35 +51,30 @@
* on Windows. It will still run correctly on other platforms
*/
public static void main (String args[]) throws Exception {
-
- String workdir = System.getProperty("test.classes");
- if (workdir == null) {
- workdir = args[0];
- }
+ setup();
/* the jar we copy for each test */
- File srcfile = new File (workdir, "foo.jar");
+ File srcfile = new File(WORK_DIR, "foo.jar");
/* the jar we use for the test */
- File testfile = new File (workdir, "test.jar");
+ File testfile = new File(WORK_DIR, "test.jar");
- copyFile (srcfile, testfile);
- test (testfile, false, false);
+ copyFile(srcfile, testfile);
+ test(testfile, false, false);
- copyFile (srcfile, testfile);
- test (testfile, true, false);
+ copyFile(srcfile, testfile);
+ test(testfile, true, false);
- copyFile (srcfile, testfile);
- test (testfile, true, true);
+ copyFile(srcfile, testfile);
+ test(testfile, true, true);
// repeat test using a directory of files
- File testdir= new File (workdir, "testdir");
- File srcdir= new File (workdir, "test3");
+ File testdir = new File(WORK_DIR, "testdir");
+ File srcdir = new File(WORK_DIR, "test3");
- copyDir (srcdir, testdir);
- test (testdir, true, false);
-
+ copyDir(srcdir, testdir);
+ test(testdir, true, false);
}
// create a loader on jarfile (or directory)
@@ -82,7 +86,7 @@
static void test (File file, boolean loadclass, boolean readall)
throws Exception
{
- URL[] urls = new URL[] {file.toURL()};
+ URL[] urls = new URL[] {file.toURI().toURL()};
System.out.println ("Doing tests with URL: " + urls[0]);
URLClassLoader loader = new URLClassLoader (urls);
if (loadclass) {
@@ -97,7 +101,7 @@
loader.close ();
- // shouuld not find bye.txt now
+ // should not find bye.txt now
InputStream s1 = loader.getResourceAsStream("bye.txt");
if (s1 != null) {
throw new RuntimeException ("closed loader returned resource");
@@ -107,4 +111,26 @@
rm_minus_rf (file);
System.out.println (" ... OK");
}
+
+ /**
+ * Prepare jars files for the tests
+ */
+ private static void setup () throws IOException {
+ Path classes = Paths.get(WORK_DIR);
+ Path testSrc = Paths.get(System.getProperty("test.src"),
+ "test1", "com", "foo", "TestClass.java");
+ Path targetDir = classes.resolve("test3");
+ Path testTarget = targetDir.resolve("TestClass.java");
+ Files.createDirectories(targetDir);
+ Files.copy(testSrc, testTarget, StandardCopyOption.REPLACE_EXISTING);
+ // Compile sources for corresponding test
+ CompilerUtils.compile(targetDir, targetDir);
+ // Prepare txt files
+ Files.write(targetDir.resolve("hello.txt"), "Hello world".getBytes(),
+ StandardOpenOption.CREATE);
+ Files.write(targetDir.resolve("bye.txt"), "Bye world".getBytes(),
+ StandardOpenOption.CREATE);
+ // Create jar
+ JarUtils.createJarFile(classes.resolve("foo.jar"), targetDir);
+ }
}
diff --git a/jdk/test/java/net/URLClassLoader/closetest/build.sh b/jdk/test/java/net/URLClassLoader/closetest/build.sh
deleted file mode 100644
index 4fe159b..0000000
--- a/jdk/test/java/net/URLClassLoader/closetest/build.sh
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2009, 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.
-#
-#
-#
-# This script builds the test files for the test
-# but not the actual test sources themselves.
-#
-if [ "${TESTSRC}" = "" ]
-then
- echo "TESTSRC not set. Test cannot execute. Failed."
- exit 1
-fi
-echo "TESTSRC=${TESTSRC}"
-
-if [ "${TESTJAVA}" = "" ]
-then
- echo "TESTJAVA not set. Test cannot execute. Failed."
- exit 1
-fi
-echo "TESTJAVA=${TESTJAVA}"
-
-if [ "${COMPILEJAVA}" = "" ]; then
- COMPILEJAVA="${TESTJAVA}"
-fi
-echo "COMPILEJAVA=${COMPILEJAVA}"
-
-if [ "${TESTCLASSES}" = "" ]
-then
- echo "TESTCLASSES not set. Test cannot execute. Failed."
- exit 1
-fi
-
-JAVAC="${COMPILEJAVA}/bin/javac"
-JAR="${COMPILEJAVA}/bin/jar"
-
-rm -rf ${TESTCLASSES}/test1
-rm -rf ${TESTCLASSES}/test2
-rm -rf ${TESTCLASSES}/serverRoot
-mkdir -p ${TESTCLASSES}/test1/com/foo
-mkdir -p ${TESTCLASSES}/test2/com/foo
-mkdir -p ${TESTCLASSES}/serverRoot
-
-cd ${TESTSRC}/test1/com/foo
-cp * ${TESTCLASSES}/test1/com/foo
-cd ${TESTCLASSES}/test1
-${JAVAC} ${TESTJAVACOPTS} ${TESTTOOLVMOPTS} com/foo/*.java
-${JAR} ${TESTTOOLVMOPTS} cvf ../test1.jar com/foo/*.class com/foo/Resource*
-
-cd ${TESTSRC}/test2/com/foo
-cp * ${TESTCLASSES}/test2/com/foo
-cd ${TESTCLASSES}/test2
-${JAVAC} ${TESTJAVACOPTS} ${TESTTOOLVMOPTS} com/foo/*.java
-${JAR} ${TESTTOOLVMOPTS} cvf ../test2.jar com/foo/*.class com/foo/Resource*
-
-cp ${TESTSRC}/serverRoot/Test.java ${TESTCLASSES}/serverRoot
-cd ${TESTCLASSES}/serverRoot
-${JAVAC} ${TESTJAVACOPTS} ${TESTTOOLVMOPTS} Test.java
diff --git a/jdk/test/java/net/URLClassLoader/closetest/build2.sh b/jdk/test/java/net/URLClassLoader/closetest/build2.sh
deleted file mode 100644
index 5b6f830..0000000
--- a/jdk/test/java/net/URLClassLoader/closetest/build2.sh
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2011, 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.
-#
-if [ "${TESTSRC}" = "" ]
-then
- echo "TESTSRC not set. Test cannot execute. Failed."
- exit 1
-fi
-echo "TESTSRC=${TESTSRC}"
-
-if [ "${TESTJAVA}" = "" ]
-then
- echo "TESTJAVA not set. Test cannot execute. Failed."
- exit 1
-fi
-echo "TESTJAVA=${TESTJAVA}"
-
-if [ "${TESTCLASSES}" = "" ]
-then
- echo "TESTCLASSES not set. Test cannot execute. Failed."
- exit 1
-fi
-
-JAVAC="${TESTJAVA}/bin/javac"
-JAR="${TESTJAVA}/bin/jar"
-
-rm -rf ${TESTCLASSES}/test3
-mkdir -p ${TESTCLASSES}/test3
-
-echo "Hello world" > ${TESTCLASSES}/test3/hello.txt
-echo "Bye world" > ${TESTCLASSES}/test3/bye.txt
-cp ${TESTSRC}/test1/com/foo/TestClass.java ${TESTCLASSES}/test3
-cd ${TESTCLASSES}/test3
-${JAVAC} -d . TestClass.java
-
-${JAR} cvf foo.jar hello.txt bye.txt com/foo/TestClass.class
-rm -f ../foo.jar
-mv foo.jar ..
diff --git a/jdk/test/java/net/URLClassLoader/getresourceasstream/TestDriver.java b/jdk/test/java/net/URLClassLoader/getresourceasstream/TestDriver.java
new file mode 100644
index 0000000..5daaee9
--- /dev/null
+++ b/jdk/test/java/net/URLClassLoader/getresourceasstream/TestDriver.java
@@ -0,0 +1,108 @@
+/*
+ * 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 5103449
+ * @summary REGRESSION: getResourceAsStream is broken in JDK1.5.0-rc
+ * @library /test/lib
+ * @build jdk.test.lib.JDKToolFinder
+ * jdk.test.lib.process.ProcessTools
+ * Test
+ * @run main/othervm TestDriver
+ */
+
+import jdk.test.lib.JDKToolFinder;
+import jdk.test.lib.process.ProcessTools;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
+
+public class TestDriver {
+ private static final String ARCHIVE_NAME = "test.jar";
+ private static final String TEST_NAME = "Test";
+ private static final String POLICY_FILE = "policy";
+ public static void main(String[] args)
+ throws Throwable {
+
+ Path userDir = Paths.get(System.getProperty("user.dir"));
+ String java = JDKToolFinder.getTestJDKTool("java");
+ String basename = userDir.getFileName().toString();
+ setup(userDir);
+ ProcessBuilder[] tests = new ProcessBuilder[]{
+ new ProcessBuilder(
+ java, TEST_NAME, "./" + ARCHIVE_NAME
+ ),
+ new ProcessBuilder(
+ java, "-cp", ".",
+ "-Djava.security.policy=file:./policy",
+ "-Djava.security.manager",
+ TEST_NAME, "./" + ARCHIVE_NAME
+ ),
+ new ProcessBuilder(
+ java, "-cp", ".",
+ "-Djava.security.policy=file:./policy",
+ "-Djava.security.manager",
+ TEST_NAME, "./" + ARCHIVE_NAME
+ ),
+ new ProcessBuilder(
+ java, "-cp", "..",
+ "-Djava.security.policy=file:../policy",
+ "-Djava.security.manager",
+ TEST_NAME, "../" + ARCHIVE_NAME
+ ).directory(userDir.resolve("tmp").toFile()),
+ new ProcessBuilder(
+ java, "-cp", basename,
+ "-Djava.security.policy=file:" + basename + "/policy",
+ "-Djava.security.manager",
+ TEST_NAME, basename + "/" + ARCHIVE_NAME
+ ).directory(userDir.resolve("..").toFile())};
+ for (ProcessBuilder test : tests) {
+ runTest(test);
+ }
+ }
+
+ private static void setup(Path userDir) throws IOException {
+ Path src = Paths.get(System.getProperty("test.src"));
+ Path testJar = src.resolve(ARCHIVE_NAME);
+ Path policy = src.resolve(POLICY_FILE);
+ Path testClass = Paths.get(System.getProperty("test.classes"),
+ TEST_NAME + ".class");
+ Files.copy(testJar, userDir.resolve(ARCHIVE_NAME), REPLACE_EXISTING);
+ Files.copy(policy, userDir.resolve(POLICY_FILE), REPLACE_EXISTING);
+ Files.copy(testClass, userDir.resolve(TEST_NAME + ".class"),
+ REPLACE_EXISTING);
+ Files.createDirectories(userDir.resolve("tmp"));
+ }
+
+ private static void runTest(ProcessBuilder pb) throws Exception {
+ System.out.println("Testing with command: [" + pb.command() + "]");
+ ProcessTools.executeProcess(pb)
+ .outputTo(System.out)
+ .errorTo(System.err)
+ .shouldHaveExitValue(0);
+ }
+}
diff --git a/jdk/test/java/net/URLClassLoader/getresourceasstream/policy b/jdk/test/java/net/URLClassLoader/getresourceasstream/policy
new file mode 100644
index 0000000..3a2f6b4
--- /dev/null
+++ b/jdk/test/java/net/URLClassLoader/getresourceasstream/policy
@@ -0,0 +1,26 @@
+/*
+ * 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.
+ */
+
+grant {
+ permission java.lang.RuntimePermission "createClassLoader";
+};
diff --git a/jdk/test/java/net/URLClassLoader/getresourceasstream/test.sh b/jdk/test/java/net/URLClassLoader/getresourceasstream/test.sh
deleted file mode 100644
index 790017f..0000000
--- a/jdk/test/java/net/URLClassLoader/getresourceasstream/test.sh
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright (c) 2004, 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.
-#
-
-set -x
-# @test
-# @bug 5103449
-# @run shell test.sh
-# @summary REGRESSION: getResourceAsStream is broken in JDK1.5.0-rc
-#
-
-
-cat << POLICY > policy
-grant {
- permission java.lang.RuntimePermission "createClassLoader";
-};
-POLICY
-
-checkExit () {
- if [ $? != 0 ]; then
- exit $1;
- fi
-}
-
-${COMPILEJAVA}/bin/javac ${TESTJAVACOPTS} ${TESTTOOLVMOPTS} -d . ${TESTSRC}/Test.java
-cp ${TESTSRC}/test.jar .
-
-${TESTJAVA}/bin/java ${TESTVMOPTS} Test ./test.jar
-checkExit 1
-
-# try with security manager
-
-${TESTJAVA}/bin/java ${TESTVMOPTS} -Djava.security.policy=file:./policy \
- -Djava.security.manager Test ./test.jar
-checkExit 2
-
-mkdir tmp
-cd tmp
-${TESTJAVA}/bin/java ${TESTVMOPTS} -Djava.security.policy=file:../policy \
- -cp .. -Djava.security.manager Test ../test.jar
-checkExit 3
-
-cd ..
-THISDIR=$(basename $(pwd))
-cd ..
-${TESTJAVA}/bin/java ${TESTVMOPTS} -Djava.security.policy=file:$THISDIR/policy \
- -cp $THISDIR -Djava.security.manager Test $THISDIR/test.jar
-checkExit 4
-
-exit 0
diff --git a/jdk/test/java/net/URLClassLoader/sealing/CheckSealed.java b/jdk/test/java/net/URLClassLoader/sealing/CheckSealed.java
index 7805de0..93f4cce 100644
--- a/jdk/test/java/net/URLClassLoader/sealing/CheckSealed.java
+++ b/jdk/test/java/net/URLClassLoader/sealing/CheckSealed.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -21,13 +21,6 @@
* questions.
*/
-/*
- * @test
- * @bug 4244970
- * @summary Test to see if sealing violation is detected correctly
- * @run shell checksealed.sh
- *
- */
public class CheckSealed {
public static void main(String[] argv) throws Exception {
diff --git a/jdk/test/java/net/URLClassLoader/sealing/CheckSealedTest.java b/jdk/test/java/net/URLClassLoader/sealing/CheckSealedTest.java
new file mode 100644
index 0000000..f0f7049
--- /dev/null
+++ b/jdk/test/java/net/URLClassLoader/sealing/CheckSealedTest.java
@@ -0,0 +1,89 @@
+/*
+ * 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 4244970
+ * @summary Test to see if sealing violation is detected correctly
+ * @library /test/lib
+ * @build jdk.test.lib.JDKToolFinder
+ * jdk.test.lib.process.OutputAnalyzer
+ * @run main CheckSealedTest
+ */
+
+import jdk.test.lib.JDKToolFinder;
+import jdk.test.lib.process.ProcessTools;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.List;
+
+import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
+
+public class CheckSealedTest {
+ private static final String ARCHIVE_NAME = "b.jar";
+ private static final String TEST_NAME = "CheckSealed";
+ public static void main(String[] args)
+ throws Throwable {
+
+ String baseDir = System.getProperty("user.dir") + File.separator;
+ String javac = JDKToolFinder.getTestJDKTool("javac");
+ String java = JDKToolFinder.getTestJDKTool("java");
+
+ setup(baseDir);
+ String srcDir = System.getProperty("test.src");
+ String cp = srcDir + File.separator + "a" + File.pathSeparator
+ + srcDir + File.separator + "b.jar" + File.pathSeparator
+ + ".";
+ List<String[]> allCMDs = List.of(
+ // Compile command
+ new String[]{
+ javac, "-cp", cp, "-d", ".",
+ srcDir + File.separator + TEST_NAME + ".java"
+ },
+ // Run test the first time
+ new String[]{
+ java, "-cp", cp, TEST_NAME, "1"
+ },
+ // Run test the second time
+ new String[]{
+ java, "-cp", cp, TEST_NAME, "2"
+ }
+ );
+
+ for (String[] cmd : allCMDs) {
+ ProcessTools.executeCommand(cmd)
+ .outputTo(System.out)
+ .errorTo(System.out)
+ .shouldHaveExitValue(0);
+ }
+ }
+
+ private static void setup(String baseDir) throws IOException {
+ Path testJar = Paths.get(System.getProperty("test.src"), ARCHIVE_NAME);
+ Files.copy(testJar, Paths.get(baseDir, ARCHIVE_NAME), REPLACE_EXISTING);
+ }
+}
diff --git a/jdk/test/java/net/URLClassLoader/sealing/checksealed.sh b/jdk/test/java/net/URLClassLoader/sealing/checksealed.sh
deleted file mode 100644
index 339525a..0000000
--- a/jdk/test/java/net/URLClassLoader/sealing/checksealed.sh
+++ /dev/null
@@ -1,64 +0,0 @@
-#! /bin/sh
-
-#
-# Copyright (c) 1999, 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.
-#
-
-#
-
-OS=`uname -s`
-case "$OS" in
- SunOS | Darwin | AIX )
- PS=":"
- FS="/"
- ;;
- Linux )
- PS=":"
- FS="/"
- ;;
- CYGWIN* )
- PS=";"
- FS="/"
- ;;
- Windows* )
- PS=";"
- FS="\\"
- ;;
- * )
- echo "Unrecognized system!"
- exit 1;
- ;;
-esac
-
-
-if [ x"$TESTJAVA" = x ]; then TESTJAVA=$1; fi
-if [ x"$COMPILEJAVA" = x ]; then COMPILEJAVA=$1; fi
-if [ x"$TESTSRC" = x ]; then TESTSRC=.; fi
-
-CLASSPATH=".${PS}${TESTSRC}${FS}a${PS}${TESTSRC}${FS}b.jar"
-
-${COMPILEJAVA}${FS}bin${FS}javac ${TESTJAVACOPTS} ${TESTTOOLVMOPTS} -classpath "${CLASSPATH}" -d . \
- ${TESTSRC}${FS}CheckSealed.java
-${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} -cp "${CLASSPATH}" CheckSealed 1
-if [ $? != 0 ]; then exit 1; fi
-${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} -cp "${CLASSPATH}" CheckSealed 2
-if [ $? != 0 ]; then exit 1; fi
diff --git a/jdk/test/java/net/URLConnection/6212146/Test.java b/jdk/test/java/net/URLConnection/6212146/Test.java
index 7f3adbf..1e33349 100644
--- a/jdk/test/java/net/URLConnection/6212146/Test.java
+++ b/jdk/test/java/net/URLConnection/6212146/Test.java
@@ -21,49 +21,43 @@
* questions.
*/
-import java.net.*;
-import java.io.*;
+import java.net.URL;
+import java.net.URLConnection;
+import java.nio.file.Paths;
public class Test {
public static void main(String[] args)
throws Exception {
- String BASE_DIR = args[0];
- String ARCHIVE_NAME = args[1];
- String lProperty = System.getProperty( "do.iterations", "5000" );
- int lRepetitions = new Integer( lProperty ).intValue();
- System.out.println ( "Start creating copys of the archive, " + lRepetitions + " times" );
- for( int i = 0; i < lRepetitions; i++ ) {
- // Copy the given jar file and add a prefix
- copyFile( BASE_DIR, ARCHIVE_NAME, i);
+ String baseDir = args[0];
+ String archiveName = args[1];
+ String lProperty = System.getProperty("do.iterations", "5000");
+ int lRepetitions = Integer.valueOf(lProperty);
+ System.out.println("Start creating copys of the archive, "
+ + lRepetitions + " times");
+ for (int i = 0; i < lRepetitions; i++) {
+ // Copy the given jar file and add a prefix
+ copyFile(baseDir, archiveName, i);
+ }
+ System.out.println("Start opening the archives archive, "
+ + lRepetitions + " times");
+ System.out.println("First URL is jar:" + Paths.get(baseDir,
+ 0 + archiveName).toUri() + "!/foo/Test.class");
+ for (int i = 0; i < lRepetitions; i++) {
+ // Create URL
+ String lURLPath = "jar:" + Paths.get(baseDir, i
+ + archiveName).toUri() + "!/foo/Test.class";
+ URL lURL = new URL(lURLPath);
+ // Open URL Connection
+ try {
+ URLConnection lConnection = lURL.openConnection();
+ lConnection.getInputStream();
+ } catch (java.io.FileNotFoundException fnfe) {
+ // Ignore this one because we expect this one
+ } catch (java.util.zip.ZipException ze) {
+ throw new RuntimeException("Test failed: " + ze.getMessage());
+ }
}
- System.out.println ( "Start opening the archives archive, " + lRepetitions + " times" );
- System.out.println ( "First URL is jar:file://" + BASE_DIR + "1" + ARCHIVE_NAME + "!/foo/Test.class");
- for( int i = 0; i < lRepetitions; i++ ) {
- // Create ULR
- String lURLPath = "jar:file://" + BASE_DIR + i + ARCHIVE_NAME + "!/foo/Test.class";
- URL lURL = new URL( lURLPath );
- // Open URL Connection
- try {
- URLConnection lConnection = lURL.openConnection();
- lConnection.getInputStream();
- } catch( java.io.FileNotFoundException fnfe ) {
- // Ignore this one because we expect this one
- } catch( java.util.zip.ZipException ze ) {
- throw new RuntimeException ("Test failed: " + ze.getMessage());
- }
- }
- //System.out.println ( "Done testing, waiting 20 seconds for checking" );
- //System.out.println ( "Cleaning up");
- //for( int i = 0; i < lRepetitions; i++ ) {
- // Copy the given jar file and add a prefix
- //deleteFile( BASE_DIR, i, ARCHIVE_NAME);
- ////}
- }
-
- private static void deleteFile (String BASE_DIR, int pIndex, String pArchiveName) {
- java.io.File file = new java.io.File (BASE_DIR, pIndex + pArchiveName );
- file.delete ();
}
private static void copyFile( String pBaseDir, String pArchiveName, int pIndex) {
diff --git a/jdk/test/java/net/URLConnection/6212146/TestDriver.java b/jdk/test/java/net/URLConnection/6212146/TestDriver.java
new file mode 100644
index 0000000..31bee6f
--- /dev/null
+++ b/jdk/test/java/net/URLConnection/6212146/TestDriver.java
@@ -0,0 +1,73 @@
+/*
+ * 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 6212146
+ * @summary URLConnection.connect() fails on JAR Entry it creates
+ * file handler leak
+ * @library /test/lib
+ * @build jdk.test.lib.JDKToolFinder
+ * jdk.test.lib.process.ProcessTools
+ * Test
+ * @run main/othervm TestDriver
+ */
+
+import jdk.test.lib.JDKToolFinder;
+import jdk.test.lib.process.ProcessTools;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
+import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
+
+public class TestDriver {
+ private static final String BASE_DIR = System.getProperty("user.dir")
+ + "/jars/";
+ private static final String ARCHIVE_NAME = "test.jar";
+ private static final String CMD_ULIMIT = "ulimit -n 300;";
+
+ public static void main(String[] args)
+ throws Throwable {
+ setup(BASE_DIR);
+ String testCMD = CMD_ULIMIT + JDKToolFinder.getTestJDKTool("java")
+ + " Test " + BASE_DIR + " " + ARCHIVE_NAME;
+ boolean isWindows = System.getProperty("os.name").startsWith("Windows");
+ if (isWindows) {
+ testCMD = testCMD.replace("\\", "/");
+ }
+ ProcessTools.executeCommand("sh", "-c", testCMD)
+ .outputTo(System.out)
+ .errorTo(System.err)
+ .shouldHaveExitValue(0);
+ }
+
+ private static void setup(String baseDir) throws IOException {
+ Path testJar = Paths.get(System.getProperty("test.src"), ARCHIVE_NAME);
+ Path targetDir = Paths.get(baseDir);
+ Files.createDirectories(targetDir);
+ Files.copy(testJar, targetDir.resolve(ARCHIVE_NAME), REPLACE_EXISTING);
+ }
+}
diff --git a/jdk/test/java/net/URLConnection/6212146/test.sh b/jdk/test/java/net/URLConnection/6212146/test.sh
deleted file mode 100644
index 9a0615c..0000000
--- a/jdk/test/java/net/URLConnection/6212146/test.sh
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright (c) 2006, 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
-# @run shell/timeout=380 test.sh
-# @bug 6212146
-# @summary URLConnection.connect() fails on JAR Entry it creates file handler leak
-#
-# set platform-dependent variables
-
-OS=`uname -s`
-case "$OS" in
- SunOS | Darwin | AIX )
- PS=":"
- FS="/"
- ;;
- Linux )
- PS=":"
- FS="/"
- ;;
- CYGWIN* )
- PS=";"
- FS="/"
- ;;
- Windows* )
- PS=";"
- FS="\\"
- ;;
- * )
- echo "Unrecognized system!"
- exit 1;
- ;;
-esac
-
-if [ -d jars ]; then
- rm -rf jars
-fi
-
-mkdir jars
-
-cp ${TESTSRC}${FS}test.jar jars
-
-${COMPILEJAVA}${FS}bin${FS}javac ${TESTJAVACOPTS} ${TESTTOOLVMOPTS} -d . ${TESTSRC}${FS}Test.java
-
-WD=`pwd`
-ulimit -H -n 300
-${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} Test ${WD}/jars/ test.jar
-result=$?
-rm -rf jars
-exit $?
diff --git a/jdk/test/java/net/URLConnection/UNCTest.java b/jdk/test/java/net/URLConnection/UNCTest.java
index 2e834f8..653b4c9 100644
--- a/jdk/test/java/net/URLConnection/UNCTest.java
+++ b/jdk/test/java/net/URLConnection/UNCTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -21,7 +21,16 @@
* questions.
*/
-import java.net.*;
+/**
+ * @test
+ * @bug 4401485
+ * @requires (os.family == "windows")
+ * @summary Check that URL.openConnection() doesn't open connection to UNC
+ * @run main UNCTest file://jdk/LOCAL-JAVA/jdk1.4/win/README.txt
+ */
+
+import java.net.URL;
+import java.net.URLConnection;
public class UNCTest {
public static void main(String args[]) throws Exception {
diff --git a/jdk/test/java/net/URLConnection/UNCTest.sh b/jdk/test/java/net/URLConnection/UNCTest.sh
deleted file mode 100644
index 8030deb..0000000
--- a/jdk/test/java/net/URLConnection/UNCTest.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright (c) 2001, 2002, 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 4401485
-# @run shell UNCTest.sh
-# @summary Check that URL.openConnection() doesn't open connection
-# to UNC.
-
-UNC="file://jdk/LOCAL-JAVA/jdk1.4/win/README.txt"
-
-OS=`uname -s`
-case "$OS" in
- Windows_95 | Windows_98 | Windows_NT )
- ${COMPILEJAVA}/bin/javac ${TESTJAVACOPTS} ${TESTTOOLVMOPTS} -d . ${TESTSRC}\\UNCTest.java
- ${TESTJAVA}/bin/java ${TESTVMOPTS} UNCTest ${UNC}
- exit
- ;;
-
- * )
- echo "This test is not intended for this OS - passing test"
- exit 0
- ;;
-esac