--- a/hotspot/test/testlibrary/ctw/test/Bar.java Tue Dec 16 17:26:42 2014 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-public class Bar {
- private static void staticMethod() { }
- public void method() { }
- protected Bar() { }
-}
--- a/hotspot/test/testlibrary/ctw/test/ClassesDirTest.java Tue Dec 16 17:26:42 2014 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-/*
- * Copyright (c) 2013, 2014, 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 8012447
- * @library /testlibrary /../../test/lib /testlibrary/ctw/src
- * @build ClassFileInstaller sun.hotspot.tools.ctw.CompileTheWorld sun.hotspot.WhiteBox Foo Bar
- * @run main ClassFileInstaller sun.hotspot.WhiteBox Foo Bar
- * sun.hotspot.WhiteBox$WhiteBoxPermission
- * @run main ClassesDirTest prepare
- * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -Dsun.hotspot.tools.ctw.logfile=ctw.log sun.hotspot.tools.ctw.CompileTheWorld classes
- * @run main ClassesDirTest check ctw.log
- * @summary testing of CompileTheWorld :: classes in directory
- * @author igor.ignatyev@oracle.com
- */
-
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.nio.file.StandardCopyOption;
-
-public class ClassesDirTest extends CtwTest {
- private static final String[] SHOULD_CONTAIN
- = {"# dir: classes", "Done (2 classes, 6 methods, "};
-
- private ClassesDirTest() {
- super(SHOULD_CONTAIN);
- }
-
- public static void main(String[] args) throws Exception {
- new ClassesDirTest().run(args);
- }
-
- protected void prepare() throws Exception {
- String path = "classes";
- Files.createDirectory(Paths.get(path));
- Files.move(Paths.get("Foo.class"), Paths.get(path, "Foo.class"),
- StandardCopyOption.REPLACE_EXISTING);
- Files.move(Paths.get("Bar.class"), Paths.get(path, "Bar.class"),
- StandardCopyOption.REPLACE_EXISTING);
- }
-}
--- a/hotspot/test/testlibrary/ctw/test/ClassesListTest.java Tue Dec 16 17:26:42 2014 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 2013, 2014, 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 8012447
- * @library /testlibrary /../../test/lib /testlibrary/ctw/src
- * @build ClassFileInstaller sun.hotspot.tools.ctw.CompileTheWorld sun.hotspot.WhiteBox Foo Bar
- * @run main ClassFileInstaller sun.hotspot.WhiteBox Foo Bar
- * sun.hotspot.WhiteBox$WhiteBoxPermission
- * @run main ClassesListTest prepare
- * @run main/othervm/timeout=600 -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -Dsun.hotspot.tools.ctw.logfile=ctw.log sun.hotspot.tools.ctw.CompileTheWorld classes.lst
- * @run main ClassesListTest check ctw.log
- * @summary testing of CompileTheWorld :: list of classes in file
- * @author igor.ignatyev@oracle.com
- */
-
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.nio.file.StandardCopyOption;
-
-public class ClassesListTest extends CtwTest {
- private static final String[] SHOULD_CONTAIN
- = {"# list: classes.lst", "Done (4 classes, "};
-
- private ClassesListTest() {
- super(SHOULD_CONTAIN);
- }
-
- public static void main(String[] args) throws Exception {
- new ClassesListTest().run(args);
- }
-
- protected void prepare() throws Exception {
- String path = "classes.lst";
- Files.copy(Paths.get(System.getProperty("test.src"), path),
- Paths.get(path), StandardCopyOption.REPLACE_EXISTING);
- }
-}
--- a/hotspot/test/testlibrary/ctw/test/CtwTest.java Tue Dec 16 17:26:42 2014 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,118 +0,0 @@
-/*
- * 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.
- */
-
-import java.util.List;
-import java.util.Collections;
-import java.util.ArrayList;
-
-import java.io.File;
-import java.io.Writer;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.BufferedReader;
-
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.nio.file.StandardCopyOption;
-import java.nio.charset.Charset;
-
-import com.oracle.java.testlibrary.JDKToolFinder;
-import com.oracle.java.testlibrary.OutputAnalyzer;
-
-public abstract class CtwTest {
- protected final String[] shouldContain;
- protected CtwTest(String[] shouldContain) {
- this.shouldContain = shouldContain;
- }
-
- public void run(String[] args) throws Exception {
- if (args.length == 0) {
- throw new Error("args is empty");
- }
- switch (args[0]) {
- case "prepare":
- prepare();
- break;
- case "check":
- check(args);
- break;
- default:
- throw new Error("unregonized action -- " + args[0]);
- }
- }
-
- protected void prepare() throws Exception { }
-
- protected void check(String[] args) throws Exception {
- if (args.length < 2) {
- throw new Error("logfile isn't specified");
- }
- String logfile = args[1];
- try (BufferedReader r = Files.newBufferedReader(Paths.get(logfile),
- Charset.defaultCharset())) {
- OutputAnalyzer output = readOutput(r);
- for (String test : shouldContain) {
- output.shouldContain(test);
- }
- }
- }
-
- private static OutputAnalyzer readOutput(BufferedReader reader)
- throws IOException {
- StringBuilder builder = new StringBuilder();
- String eol = String.format("%n");
- String line;
-
- while ((line = reader.readLine()) != null) {
- builder.append(line);
- builder.append(eol);
- }
- return new OutputAnalyzer(builder.toString(), "");
- }
-
- protected void dump(OutputAnalyzer output, String name) {
- try (Writer w = new FileWriter(name + ".out")) {
- String s = output.getStdout();
- w.write(s, s.length(), 0);
- } catch (IOException io) {
- io.printStackTrace();
- }
- try (Writer w = new FileWriter(name + ".err")) {
- String s = output.getStderr();
- w.write(s, s.length(), 0);
- } catch (IOException io) {
- io.printStackTrace();
- }
- }
-
- protected ProcessBuilder createJarProcessBuilder(String... command)
- throws Exception {
- String javapath = JDKToolFinder.getJDKTool("jar");
-
- ArrayList<String> args = new ArrayList<>();
- args.add(javapath);
- Collections.addAll(args, command);
-
- return new ProcessBuilder(args.toArray(new String[args.size()]));
- }
-}
--- a/hotspot/test/testlibrary/ctw/test/Foo.java Tue Dec 16 17:26:42 2014 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-public class Foo {
- private static void staticMethod() { }
- public void method() { }
- protected Foo() { }
-}
--- a/hotspot/test/testlibrary/ctw/test/JarDirTest.java Tue Dec 16 17:26:42 2014 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 2013, 2014, 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 8012447
- * @library /testlibrary /../../test/lib /testlibrary/ctw/src
- * @build ClassFileInstaller com.oracle.java.testlibrary.* sun.hotspot.tools.ctw.CompileTheWorld sun.hotspot.WhiteBox Foo Bar
- * @run main ClassFileInstaller sun.hotspot.WhiteBox Foo Bar
- * sun.hotspot.WhiteBox$WhiteBoxPermission
- * @run main JarDirTest prepare
- * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -Dsun.hotspot.tools.ctw.logfile=ctw.log sun.hotspot.tools.ctw.CompileTheWorld jars/*
- * @run main JarDirTest check ctw.log
- * @summary testing of CompileTheWorld :: jars in directory
- * @author igor.ignatyev@oracle.com
- */
-
-import java.io.File;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-
-import com.oracle.java.testlibrary.OutputAnalyzer;
-
-public class JarDirTest extends CtwTest {
- private static final String[] SHOULD_CONTAIN
- = {"# jar_in_dir: jars",
- "# jar: jars" + File.separator +"foo.jar",
- "# jar: jars" + File.separator +"bar.jar",
- "Done (4 classes, 12 methods, "};
-
- private JarDirTest() {
- super(SHOULD_CONTAIN);
- }
-
- public static void main(String[] args) throws Exception {
- new JarDirTest().run(args);
- }
-
- protected void prepare() throws Exception {
- String path = "jars";
- Files.createDirectory(Paths.get(path));
-
- ProcessBuilder pb = createJarProcessBuilder("cf", "jars/foo.jar",
- "Foo.class", "Bar.class");
- OutputAnalyzer output = new OutputAnalyzer(pb.start());
- dump(output, "ctw-foo.jar");
- output.shouldHaveExitValue(0);
-
- pb = createJarProcessBuilder("cf", "jars/bar.jar", "Foo.class",
- "Bar.class");
- output = new OutputAnalyzer(pb.start());
- dump(output, "ctw-bar.jar");
- output.shouldHaveExitValue(0);
- }
-
-}
--- a/hotspot/test/testlibrary/ctw/test/JarsTest.java Tue Dec 16 17:26:42 2014 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-/*
- * Copyright (c) 2013, 2014, 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 8012447
- * @library /testlibrary /../../test/lib /testlibrary/ctw/src
- * @build ClassFileInstaller com.oracle.java.testlibrary.* sun.hotspot.tools.ctw.CompileTheWorld sun.hotspot.WhiteBox Foo Bar
- * @run main ClassFileInstaller sun.hotspot.WhiteBox Foo Bar
- * sun.hotspot.WhiteBox$WhiteBoxPermission
- * @run main JarsTest prepare
- * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -Dsun.hotspot.tools.ctw.logfile=ctw.log sun.hotspot.tools.ctw.CompileTheWorld foo.jar bar.jar
- * @run main JarsTest check ctw.log
- * @summary testing of CompileTheWorld :: jars
- * @author igor.ignatyev@oracle.com
- */
-
-import com.oracle.java.testlibrary.OutputAnalyzer;
-
-public class JarsTest extends CtwTest {
- private static final String[] SHOULD_CONTAIN
- = {"# jar: foo.jar", "# jar: bar.jar",
- "Done (4 classes, 12 methods, "};
-
- private JarsTest() {
- super(SHOULD_CONTAIN);
- }
-
- public static void main(String[] args) throws Exception {
- new JarsTest().run(args);
- }
-
- protected void prepare() throws Exception {
- ProcessBuilder pb = createJarProcessBuilder("cf", "foo.jar",
- "Foo.class", "Bar.class");
- OutputAnalyzer output = new OutputAnalyzer(pb.start());
- dump(output, "ctw-foo.jar");
- output.shouldHaveExitValue(0);
-
- pb = createJarProcessBuilder("cf", "bar.jar", "Foo.class", "Bar.class");
- output = new OutputAnalyzer(pb.start());
- dump(output, "ctw-bar.jar");
- output.shouldHaveExitValue(0);
- }
-
-}
--- a/hotspot/test/testlibrary/ctw/test/classes.lst Tue Dec 16 17:26:42 2014 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-java.lang.String
-java.lang.Object
-Foo
-Bar