# HG changeset patch # User ykantser # Date 1408098538 -7200 # Node ID 76e62811f63b50fef6b7719178a316fccddb49ee # Parent 12bcf9a5994f8d1d98447db6fd23b8c23753c1a4 8054278: Refactor jps utility tests Reviewed-by: jbachorik diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/ProblemList.txt --- a/jdk/test/ProblemList.txt Thu Aug 14 15:54:04 2014 -0700 +++ b/jdk/test/ProblemList.txt Fri Aug 15 12:28:58 2014 +0200 @@ -295,4 +295,7 @@ # 8046355 sun/tools/jstatd/TestJstatdExternalRegistry.java generic-all +# 6456333 +sun/tools/jps/TestJpsJarRelative.java generic-all + ############################################################################ diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/JpsBase.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/sun/tools/jps/JpsBase.java Fri Aug 15 12:28:58 2014 +0200 @@ -0,0 +1,144 @@ +/* + * Copyright (c) 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. + */ + +import java.io.File; +import java.net.URL; +import java.util.List; + +import jdk.testlibrary.OutputAnalyzer; +import jdk.testlibrary.ProcessTools; + +/** + * The base class for testing the jps utility. + * The test sequence is to start jps with different combinations of arguments + * and verify the output contains proper values. + */ +public final class JpsBase { + + private static final String shortProcessName; + private static final String fullProcessName; + + /** + * The jps output should contain processes' names + * (except when jps is started in quite mode). + * The expected name of the test process is prepared here. + */ + static { + URL url = JpsBase.class.getResource("JpsBase.class"); + boolean isJar = url.getProtocol().equals("jar"); + + if (isJar) { + shortProcessName = JpsBase.class.getSimpleName() + ".jar"; + String urlPath = url.getPath(); + File jar = new File(urlPath.substring(urlPath.indexOf("file:") + 5, urlPath.indexOf("jar!") + 3)); + fullProcessName = jar.getAbsolutePath(); + } else { + shortProcessName = JpsBase.class.getSimpleName(); + fullProcessName = JpsBase.class.getName(); + } + } + + public static void main(String[] args) throws Exception { + int pid = ProcessTools.getProcessId(); + + List> combinations = JpsHelper.JpsArg.generateCombinations(); + for (List combination : combinations) { + OutputAnalyzer output = JpsHelper.jps(JpsHelper.JpsArg.asCmdArray(combination)); + output.shouldHaveExitValue(0); + + boolean isQuiet = false; + boolean isFull = false; + String pattern; + for (JpsHelper.JpsArg jpsArg : combination) { + switch (jpsArg) { + case q: + // If '-q' is specified output should contain only a list of local VM identifiers: + // 30673 + isQuiet = true; + JpsHelper.verifyJpsOutput(output, "^\\d+$"); + output.shouldContain(Integer.toString(pid)); + break; + case l: + // If '-l' is specified output should contain the full package name for the application's main class + // or the full path name to the application's JAR file: + // 30673 /tmp/jtreg/jtreg-workdir/scratch/JpsBase.jar ... + isFull = true; + pattern = "^" + pid + "\\s+" + replaceSpecialChars(fullProcessName) + ".*"; + output.shouldMatch(pattern); + break; + case m: + // If '-m' is specified output should contain the arguments passed to the main method: + // 30673 JpsBase monkey ... + for (String arg : args) { + pattern = "^" + pid + ".*" + replaceSpecialChars(arg) + ".*"; + output.shouldMatch(pattern); + } + break; + case v: + // If '-v' is specified output should contain VM arguments: + // 30673 JpsBase -Xmx512m -XX:+UseParallelGC -XX:Flags=/tmp/jtreg/jtreg-workdir/scratch/vmflags ... + for (String vmArg : JpsHelper.getVmArgs()) { + pattern = "^" + pid + ".*" + replaceSpecialChars(vmArg) + ".*"; + output.shouldMatch(pattern); + } + break; + case V: + // If '-V' is specified output should contain VM flags: + // 30673 JpsBase +DisableExplicitGC ... + pattern = "^" + pid + ".*" + replaceSpecialChars(JpsHelper.VM_FLAG) + ".*"; + output.shouldMatch(pattern); + break; + } + + if (isQuiet) { + break; + } + } + + if (!isQuiet) { + // Verify output line by line. + // Output should only contain lines with pids after the first line with pid. + JpsHelper.verifyJpsOutput(output, "^\\d+\\s+.*"); + if (!isFull) { + pattern = "^" + pid + "\\s+" + replaceSpecialChars(shortProcessName); + if (combination.isEmpty()) { + // If no arguments are specified output should only contain + // pid and process name + pattern += "$"; + } else { + pattern += ".*"; + } + output.shouldMatch(pattern); + } + } + } + } + + private static String replaceSpecialChars(String str) { + String tmp = str.replace("\\", "\\\\"); + tmp = tmp.replace("+", "\\+"); + tmp = tmp.replace(".", "\\."); + return tmp; + } + +} diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/JpsHelper.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/sun/tools/jps/JpsHelper.java Fri Aug 15 12:28:58 2014 +0200 @@ -0,0 +1,238 @@ +/* + * Copyright (c) 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. + */ + +import static jdk.testlibrary.Asserts.assertGreaterThan; +import static jdk.testlibrary.Asserts.assertTrue; + +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import jdk.testlibrary.Asserts; +import jdk.testlibrary.JDKToolLauncher; +import jdk.testlibrary.OutputAnalyzer; +import jdk.testlibrary.Utils; + +/** + * The helper class for running jps utility and verifying output from it + */ +public final class JpsHelper { + + /** + * Helper class for handling jps arguments + */ + public enum JpsArg { + q, + l, + m, + v, + V; + + /** + * Generate all possible combinations of {@link JpsArg} + * (31 argument combinations and no arguments case) + */ + public static List> generateCombinations() { + final int argCount = JpsArg.values().length; + // If there are more than 30 args this algorithm will overflow. + Asserts.assertLessThan(argCount, 31, "Too many args"); + + List> combinations = new ArrayList<>(); + int combinationCount = (int) Math.pow(2, argCount); + for (int currCombo = 0; currCombo < combinationCount; ++currCombo) { + List combination = new ArrayList<>(); + for (int position = 0; position < argCount; ++position) { + int bit = 1 << position; + if ((bit & currCombo) != 0) { + combination.add(JpsArg.values()[position]); + } + } + combinations.add(combination); + } + return combinations; + } + + /** + * Return combination of {@link JpsArg} as a String array + */ + public static String[] asCmdArray(List jpsArgs) { + List list = new ArrayList<>(); + for (JpsArg jpsArg : jpsArgs) { + list.add("-" + jpsArg.toString()); + } + return list.toArray(new String[list.size()]); + } + + } + + /** + * VM arguments to start test application with + */ + public static final String[] VM_ARGS = {"-Xmx512m", "-XX:+UseParallelGC"}; + /** + * VM flag to start test application with + */ + public static final String VM_FLAG = "+DisableExplicitGC"; + + private static File vmFlagsFile = null; + private static List testVmArgs = null; + private static File manifestFile = null; + + /** + * Create a file containing VM_FLAG in the working directory + */ + public static File getVmFlagsFile() throws IOException { + if (vmFlagsFile == null) { + vmFlagsFile = new File("vmflags"); + try (BufferedWriter output = new BufferedWriter(new FileWriter(vmFlagsFile))) { + output.write(VM_FLAG); + } + vmFlagsFile.deleteOnExit(); + } + return vmFlagsFile; + } + + /** + * Return a list of VM arguments + */ + public static List getVmArgs() throws IOException { + if (testVmArgs == null) { + testVmArgs = new ArrayList<>(); + testVmArgs.addAll(Arrays.asList(VM_ARGS)); + testVmArgs.add("-XX:Flags=" + getVmFlagsFile().getAbsolutePath()); + } + return testVmArgs; + } + + /** + * Start jps utility without any arguments + */ + public static OutputAnalyzer jps() throws Exception { + return jps(null, null); + } + + /** + * Start jps utility with tool arguments + */ + public static OutputAnalyzer jps(String... toolArgs) throws Exception { + return jps(null, Arrays.asList(toolArgs)); + } + + /** + * Start jps utility with VM args and tool arguments + */ + public static OutputAnalyzer jps(List vmArgs, List toolArgs) throws Exception { + JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jps"); + if (vmArgs != null) { + for (String vmArg : vmArgs) { + launcher.addVMArg(vmArg); + } + } + if (toolArgs != null) { + for (String toolArg : toolArgs) { + launcher.addToolArg(toolArg); + } + } + + ProcessBuilder processBuilder = new ProcessBuilder(launcher.getCommand()); + System.out.println(Arrays.toString(processBuilder.command().toArray()).replace(",", "")); + OutputAnalyzer output = new OutputAnalyzer(processBuilder.start()); + System.out.println(output.getOutput()); + + return output; + } + + /** + * Verify jps output contains pids and programs' name information. + * The function will discard any lines that come before the first line with pid. + * This can happen if the JVM outputs a warning message for some reason + * before running jps. + * + * The output can look like: + * 35536 Jps + * 35417 Main + * 31103 org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar + */ + public static void verifyJpsOutput(OutputAnalyzer output, String regex) throws Exception { + output.shouldHaveExitValue(0); + int matchedCount = output.shouldMatchByLineFrom(regex, regex); + assertGreaterThan(matchedCount , 0, "Found no lines matching pattern: " + regex); + } + + /** + * Compare jps output with a content in a file line by line + */ + public static void verifyOutputAgainstFile(OutputAnalyzer output) throws IOException { + String testSrc = System.getProperty("test.src", "?"); + File file = new File(testSrc, "usage.out"); + List fileOutput = Utils.fileAsList(file); + List outputAsLines = output.asLines(); + assertTrue(outputAsLines.containsAll(fileOutput), + "The ouput should contain all content of " + file.getAbsolutePath()); + } + + private static File getManifest(String className) throws IOException { + if (manifestFile == null) { + manifestFile = new File(className + ".mf"); + try (BufferedWriter output = new BufferedWriter(new FileWriter(manifestFile))) { + output.write("Main-Class: " + className + Utils.NEW_LINE); + } + } + return manifestFile; + } + + /** + * Build a jar of test classes in runtime + */ + public static File buildJar(String className) throws Exception { + File jar = new File(className + ".jar"); + + List jarArgs = new ArrayList<>(); + jarArgs.add("-cfm"); + jarArgs.add(jar.getAbsolutePath()); + File manifestFile = getManifest(className); + jarArgs.add(manifestFile.getAbsolutePath()); + String testClassPath = System.getProperty("test.class.path", "?"); + for (String path : testClassPath.split(File.pathSeparator)) { + jarArgs.add("-C"); + jarArgs.add(path); + jarArgs.add("."); + } + + System.out.println("Running jar " + jarArgs.toString()); + sun.tools.jar.Main jarTool = new sun.tools.jar.Main(System.out, System.err, "jar"); + if (!jarTool.run(jarArgs.toArray(new String[jarArgs.size()]))) { + throw new Exception("jar failed: args=" + jarArgs.toString()); + } + + manifestFile.delete(); + jar.deleteOnExit(); + + return jar; + } + +} diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/TestJpsClass.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/sun/tools/jps/TestJpsClass.java Fri Aug 15 12:28:58 2014 +0200 @@ -0,0 +1,63 @@ +/* + * Copyright (c) 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. + */ + +import java.util.ArrayList; +import java.util.List; + +import jdk.testlibrary.OutputAnalyzer; +import jdk.testlibrary.ProcessTools; + +/* + * @test + * @summary The test application will be started with java class: + * java JpsBase + * For all possible combinations of jps arguments a jps process + * will be started from within the test application. + * The output should contain proper values. + * @library /lib/testlibrary + * @build jdk.testlibrary.* JpsHelper JpsBase + * @run driver TestJpsClass + */ +public class TestJpsClass { + + public static void main(String[] args) throws Throwable { + String testJdk = System.getProperty("test.jdk", "?"); + String testSrc = System.getProperty("test.src", "?"); + String testClassPath = System.getProperty("test.class.path", "?"); + + List cmd = new ArrayList<>(); + cmd.addAll(JpsHelper.getVmArgs()); + cmd.add("-Dtest.jdk=" + testJdk); + cmd.add("-Dtest.src=" + testSrc); + cmd.add("-cp"); + cmd.add(testClassPath); + cmd.add("JpsBase"); + cmd.add("monkey"); + + ProcessBuilder processBuilder = ProcessTools.createJavaProcessBuilder(cmd.toArray(new String[cmd.size()])); + OutputAnalyzer output = new OutputAnalyzer(processBuilder.start()); + System.out.println(output.getOutput()); + output.shouldHaveExitValue(0); + } + +} diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/TestJpsJar.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/sun/tools/jps/TestJpsJar.java Fri Aug 15 12:28:58 2014 +0200 @@ -0,0 +1,63 @@ +/* + * Copyright (c) 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. + */ + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import jdk.testlibrary.OutputAnalyzer; +import jdk.testlibrary.ProcessTools; + +/* + * @test + * @summary The test application will be started with absolute jar: + * java -jar /tmp/jtreg/jtreg-workdir/scratch/JpsBase.jar + * For all possible combinations of jps arguments a jps process + * will be started from within the test application. + * The output should contain proper values. + * @library /lib/testlibrary + * @build jdk.testlibrary.* JpsHelper JpsBase + * @run driver TestJpsJar + */ +public class TestJpsJar { + + public static void main(String[] args) throws Throwable { + String testJdk = System.getProperty("test.jdk", "?"); + String testSrc = System.getProperty("test.src", "?"); + File jar = JpsHelper.buildJar("JpsBase"); + + List cmd = new ArrayList<>(); + cmd.addAll(JpsHelper.getVmArgs()); + cmd.add("-Dtest.jdk=" + testJdk); + cmd.add("-Dtest.src=" + testSrc); + cmd.add("-jar"); + cmd.add(jar.getAbsolutePath()); + cmd.add("monkey"); + + ProcessBuilder processBuilder = ProcessTools.createJavaProcessBuilder(cmd.toArray(new String[cmd.size()])); + OutputAnalyzer output = new OutputAnalyzer(processBuilder.start()); + System.out.println(output.getOutput()); + output.shouldHaveExitValue(0); + } + +} diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/TestJpsJarRelative.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/sun/tools/jps/TestJpsJarRelative.java Fri Aug 15 12:28:58 2014 +0200 @@ -0,0 +1,63 @@ +/* + * Copyright (c) 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. + */ + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import jdk.testlibrary.OutputAnalyzer; +import jdk.testlibrary.ProcessTools; + +/* + * @test + * @summary The test application will be started with relative jar: + * java -jar ./JpsBase.jar + * For all possible combinations of jps arguments a jps process + * will be started from within the test application. + * The output should contain proper values. + * @library /lib/testlibrary + * @build jdk.testlibrary.* JpsHelper JpsBase + * @run driver TestJpsJarRelative + */ +public class TestJpsJarRelative { + + public static void main(String[] args) throws Throwable { + String testJdk = System.getProperty("test.jdk", "?"); + String testSrc = System.getProperty("test.src", "?"); + File jar = JpsHelper.buildJar("JpsBase"); + + List cmd = new ArrayList<>(); + cmd.addAll(JpsHelper.getVmArgs()); + cmd.add("-Dtest.jdk=" + testJdk); + cmd.add("-Dtest.src=" + testSrc); + cmd.add("-jar"); + cmd.add("." + File.separator + jar.getName()); + cmd.add("monkey"); + + ProcessBuilder processBuilder = ProcessTools.createJavaProcessBuilder(cmd.toArray(new String[cmd.size()])); + OutputAnalyzer output = new OutputAnalyzer(processBuilder.start()); + System.out.println(output.getOutput()); + output.shouldHaveExitValue(0); + } + +} diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/TestJpsSanity.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/sun/tools/jps/TestJpsSanity.java Fri Aug 15 12:28:58 2014 +0200 @@ -0,0 +1,66 @@ +/* + * Copyright (c) 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. + */ + +import jdk.testlibrary.Asserts; +import jdk.testlibrary.OutputAnalyzer; + +/* + * @test + * @summary This test verifies jps usage and checks that appropriate error message is shown + * when running jps with illegal arguments. + * @library /lib/testlibrary + * @build jdk.testlibrary.* JpsHelper + * @run driver TestJpsSanity + */ +public class TestJpsSanity { + + public static void main(String[] args) throws Throwable { + testJpsUsage(); + testJpsVersion(); + testJpsUnknownHost(); + } + + private static void testJpsUsage() throws Exception { + OutputAnalyzer output = JpsHelper.jps("-?"); + JpsHelper.verifyOutputAgainstFile(output); + + output = JpsHelper.jps("-help"); + JpsHelper.verifyOutputAgainstFile(output); + } + + private static void testJpsVersion() throws Exception { + OutputAnalyzer output = JpsHelper.jps("-version"); + Asserts.assertNotEquals(output.getExitValue(), 0, "Exit code shouldn't be 0"); + Asserts.assertFalse(output.getStderr().isEmpty(), "Error output should not be empty"); + output.shouldContain("illegal argument: -version"); + } + + private static void testJpsUnknownHost() throws Exception { + String invalidHostName = "Oja781nh2ev7vcvbajdg-Sda1-C"; + OutputAnalyzer output = JpsHelper.jps(invalidHostName); + Asserts.assertNotEquals(output.getExitValue(), 0, "Exit code shouldn't be 0"); + Asserts.assertFalse(output.getStderr().isEmpty(), "Error output should not be empty"); + output.shouldContain("Unknown host: " + invalidHostName); + } + +} diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/jps-Defaults.sh --- a/jdk/test/sun/tools/jps/jps-Defaults.sh Thu Aug 14 15:54:04 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -# -# Copyright (c) 2004, 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. -# - -# @test -# @bug 4990825 -# @run shell jps-Defaults.sh -# @summary Test that output of 'jps' matches a specific pattern - -. ${TESTSRC-.}/../../jvmstat/testlibrary/utils.sh - -setup -verify_os - -JPS="${TESTJAVA}/bin/jps" - -${JPS} -J-XX:+UsePerfData 2>&1 | awk -f ${TESTSRC}/jps_Output1.awk diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/jps-V_2.sh --- a/jdk/test/sun/tools/jps/jps-V_2.sh Thu Aug 14 15:54:04 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -# -# 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 -# @bug 4990825 -# @run shell jps-V_2.sh -# @summary Test that output of 'jps -V' shows JVM flags - -. ${TESTSRC-.}/../../jvmstat/testlibrary/utils.sh - -setup -verify_os - -JPS="${TESTJAVA}/bin/jps" - -${JPS} -J-XX:+UsePerfData -J-XX:Flags=${TESTSRC}/vmflags -V | awk -f ${TESTSRC}/jps-V_Output2.awk diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/jps-V_Output2.awk --- a/jdk/test/sun/tools/jps/jps-V_Output2.awk Thu Aug 14 15:54:04 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -# -BEGIN { - totallines=0; matched=0 - } - -/^[0-9]+ Jps.* \+DisableExplicitGC$/ { - matched++; - } - - { totallines++; print $0 } - -END { - if ((totallines > 0) && (matched >= 1)) { - exit 0 - } - else { - exit 1 - } - } diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/jps-Vm_2.sh --- a/jdk/test/sun/tools/jps/jps-Vm_2.sh Thu Aug 14 15:54:04 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -# -# Copyright (c) 2004, 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. -# - -# @test -# @bug 4990825 -# @run shell jps-Vm_2.sh -# @summary Test that output of 'jps -Vm' shows JVM flags and main args - -. ${TESTSRC-.}/../../jvmstat/testlibrary/utils.sh - -setup -verify_os - -JPS="${TESTJAVA}/bin/jps" - -${JPS} -J-XX:+UsePerfData -J-XX:Flags=${TESTSRC}/vmflags -Vm | awk -f ${TESTSRC}/jps-Vm_Output2.awk diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/jps-Vm_Output2.awk --- a/jdk/test/sun/tools/jps/jps-Vm_Output2.awk Thu Aug 14 15:54:04 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -# -BEGIN { - totallines=0; matched=0 - } - -/^[0-9]+ Jps -Vm.* \+DisableExplicitGC$/ { - matched++; - } - - { totallines++; print $0 } - -END { - if ((totallines > 0) && (matched >= 1)) { - exit 0 - } - else { - exit 1 - } - } diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/jps-Vvm.sh --- a/jdk/test/sun/tools/jps/jps-Vvm.sh Thu Aug 14 15:54:04 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -# -# Copyright (c) 2004, 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. -# - -# @test -# @bug 4990825 -# @run shell jps-Vvm.sh -# @summary Test that output of 'jps -Vvm' shows JVM flags, arguments and main args - -. ${TESTSRC-.}/../../jvmstat/testlibrary/utils.sh - -setup -verify_os - -JPS="${TESTJAVA}/bin/jps" - -${JPS} -J-XX:+UsePerfData -J-XX:Flags=${TESTSRC}/vmflags -Vvm | awk -f ${TESTSRC}/jps-Vvm_Output1.awk diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/jps-Vvm_Output1.awk --- a/jdk/test/sun/tools/jps/jps-Vvm_Output1.awk Thu Aug 14 15:54:04 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -# -BEGIN { - totallines=0; matched=0 - } - -/^[0-9]+ Jps -Vvm.*-XX:Flags=.*vmflags.* \+DisableExplicitGC$/ { - matched++; - } - - { totallines++; print $0 } - -END { - if ((totallines > 0) && (matched >= 1)) { - exit 0 - } - else { - exit 1 - } - } diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/jps-Vvml.sh --- a/jdk/test/sun/tools/jps/jps-Vvml.sh Thu Aug 14 15:54:04 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -# -# Copyright (c) 2004, 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. -# - -# @test -# @bug 4990825 -# @run shell jps-Vvml.sh -# @summary Test that output of 'jps -Vvml' shows JVM arguments, flags, and main args with long class names - -. ${TESTSRC-.}/../../jvmstat/testlibrary/utils.sh - -setup -verify_os - -JPS="${TESTJAVA}/bin/jps" - -${JPS} -J-XX:+UsePerfData -J-XX:Flags=${TESTSRC}/vmflags -Vvml | awk -f ${TESTSRC}/jps-Vvml_Output1.awk diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/jps-Vvml_2.sh --- a/jdk/test/sun/tools/jps/jps-Vvml_2.sh Thu Aug 14 15:54:04 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,63 +0,0 @@ -# -# 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 -# @bug 5009652 -# @library ../../jvmstat/testlibrary -# @build Sleeper -# @run shell jps-Vvml_2.sh -# @summary Test that output of 'jps -Vvml' shows proper output when no JVM arguments, flags, or main args are present - -. ${TESTSRC-.}/../../jvmstat/testlibrary/utils.sh - -setup -verify_os - -cleanup() { - kill_proc ${SLEEPER_PID} -} - -trap 'cleanup' 0 HUP INT QUIT TERM - -JPS="${TESTJAVA}/bin/jps" - -JAVA="${TESTJAVA}/bin/java" - -# fire up a Sleeper that block indefinitely - but don't pass -# any args to Sleeper.main() or any jvm flags or options, as we -# need to inspect jps output for the no args condition. -# -# Note: this test can not pass on a VM with UsePerfData disabled by default, -# and we can not set -XX:+UsePerfData as that invalidates the test premise of -# there being no jvm flags - -${JAVA} -cp ${TESTCLASSPATH:-${TESTCLASSES}} Sleeper & -SLEEPER_PID=$! - -${JPS} -J-XX:Flags=${TESTSRC}/vmflags -Vvml | awk -f ${TESTSRC}/jps-Vvml_Output2.awk -RC=$? - -cleanup - -exit ${RC} - diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/jps-Vvml_Output1.awk --- a/jdk/test/sun/tools/jps/jps-Vvml_Output1.awk Thu Aug 14 15:54:04 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -# - -BEGIN { - totallines=0; matched=0 - } - -/^[0-9]+ sun.tools.jps.Jps -Vvml.*-XX:Flags=.*vmflags.* \+DisableExplicitGC$/ { - matched++; - } - - { totallines++; print $0 } - -END { - if ((totallines > 0) && (matched >= 1)) { - exit 0 - } - else { - exit 1 - } - } diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/jps-Vvml_Output2.awk --- a/jdk/test/sun/tools/jps/jps-Vvml_Output2.awk Thu Aug 14 15:54:04 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ -# 1.1 04/03/08 - -BEGIN { - totallines=0; matched=0 - } - -/^[0-9]+ Sleeper$/ { - matched++; - } - -/^[0-9]+ sun.tools.jps.Jps -Vvml.*-XX:Flags=.*vmflags.* \+DisableExplicitGC$/ { - matched++; - } - - { totallines++; print $0 } - -END { - if ((totallines > 0) && (matched >= 2)) { - exit 0 - } - else { - exit 1 - } - } diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/jps-help.sh --- a/jdk/test/sun/tools/jps/jps-help.sh Thu Aug 14 15:54:04 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,57 +0,0 @@ -# -# Copyright (c) 2004, 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. -# - -# @test -# @bug 4990825 -# @run shell jps-help.sh -# @summary Test that output of 'jps -?' matches the usage.out file - -. ${TESTSRC-.}/../../jvmstat/testlibrary/utils.sh - -setup - -JPS="${TESTJAVA}/bin/jps" - -rm -f jps.out 2>/dev/null -${JPS} -J-XX:+UsePerfData -? > jps.out 2>&1 - -diff -w jps.out ${TESTSRC}/usage.out -if [ $? != 0 ] -then - echo "Output of jps -? differ from expected output. Failed." - rm -f jps.out 2>/dev/null - exit 1 -fi - -rm -f jps.out 2>/dev/null -${JPS} -J-XX:+UsePerfData -help > jps.out 2>&1 - -diff -w jps.out ${TESTSRC}/usage.out -if [ $? != 0 ] -then - echo "Output of jps -help differ from expected output. Failed." - rm -f jps.out 2>/dev/null - exit 1 -fi - -exit 0 diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/jps-l_1.sh --- a/jdk/test/sun/tools/jps/jps-l_1.sh Thu Aug 14 15:54:04 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -# -# Copyright (c) 2004, 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. -# - -# @test -# @bug 4990825 -# @run shell jps-l_1.sh -# @summary Test that output of 'jps -l' matches a specific pattern - -. ${TESTSRC-.}/../../jvmstat/testlibrary/utils.sh - -setup -verify_os - -JPS="${TESTJAVA}/bin/jps" - -${JPS} -J-XX:+UsePerfData -l 2>&1 | awk -f ${TESTSRC}/jps-l_Output1.awk diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/jps-l_2.sh --- a/jdk/test/sun/tools/jps/jps-l_2.sh Thu Aug 14 15:54:04 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -# -# Copyright (c) 2004, 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. -# - -# @test -# @bug 4990825 -# @run shell jps-l_2.sh -# @summary Test that output of 'jps -l' shows the long class name - -. ${TESTSRC-.}/../../jvmstat/testlibrary/utils.sh - -setup -verify_os - -JPS="${TESTJAVA}/bin/jps" - -${JPS} -J-XX:+UsePerfData -l | awk -f ${TESTSRC}/jps-l_Output2.awk diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/jps-l_Output1.awk --- a/jdk/test/sun/tools/jps/jps-l_Output1.awk Thu Aug 14 15:54:04 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -# -BEGIN { - totallines=0; matched=0 - } - -# match on a fully qualified class name -/^[0-9]+ [a-z|A-Z][a-z|A-Z|0-9|\.|\$|\+]*$/ { - matched++; - } - -# or match on a jar or war file name - note, jar files ending with -# ".jar" is only a convention , not a requirement. Theoretically, -# any valid file name could occur here. -/^[0-9]+ .*\.(jar|war)$/ { - matched++; -} - -# or match on the condition that the class name is not available -/^[0-9]+ -- .*$/ { - matched++; - } - -# or match an empty class name -/^[0-9]+ $/ { - matched++; - } - - { totallines++; print $0 } - -END { - if ((totallines > 0) && (matched == totallines)) { - exit 0 - } - else { - exit 1 - } - } diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/jps-l_Output2.awk --- a/jdk/test/sun/tools/jps/jps-l_Output2.awk Thu Aug 14 15:54:04 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -# -BEGIN { - totallines=0; matched=0 - } - -/^[0-9]+ sun.tools.jps.Jps$/ { - matched++; - } - - { totallines++; print $0 } - -END { - if ((totallines > 0) && (matched >= 1)) { - exit 0 - } - else { - exit 1 - } - } diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/jps-lm.sh --- a/jdk/test/sun/tools/jps/jps-lm.sh Thu Aug 14 15:54:04 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -# -# Copyright (c) 2004, 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. -# - -# @test -# @bug 4990825 -# @run shell jps-lm.sh -# @summary Test that output of 'jps -lm' shows the long class name and main args - -. ${TESTSRC-.}/../../jvmstat/testlibrary/utils.sh - -setup -verify_os - -JPS="${TESTJAVA}/bin/jps" - -${JPS} -J-XX:+UsePerfData -lm | awk -f ${TESTSRC}/jps-lm_Output1.awk diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/jps-lm_Output1.awk --- a/jdk/test/sun/tools/jps/jps-lm_Output1.awk Thu Aug 14 15:54:04 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -# -BEGIN { - totallines=0; matched=0 - } - -/^[0-9]+ sun.tools.jps.Jps -lm$/ { - matched++; - } - - { totallines++; print $0 } - -END { - if ((totallines > 0) && (matched >= 1)) { - exit 0 - } - else { - exit 1 - } - } diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/jps-m.sh --- a/jdk/test/sun/tools/jps/jps-m.sh Thu Aug 14 15:54:04 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -# -# Copyright (c) 2004, 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. -# - -# @test -# @bug 4990825 -# @run shell jps-m.sh -# @summary Test that output of 'jps -m' shows args to main - -. ${TESTSRC-.}/../../jvmstat/testlibrary/utils.sh - -setup -verify_os - -JPS="${TESTJAVA}/bin/jps" - -${JPS} -J-XX:+UsePerfData -m | awk -f ${TESTSRC}/jps-m_Output1.awk diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/jps-m_2.sh --- a/jdk/test/sun/tools/jps/jps-m_2.sh Thu Aug 14 15:54:04 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,58 +0,0 @@ -# -# 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 -# @bug 5009652 -# @library ../../jvmstat/testlibrary -# @build Sleeper -# @run shell jps-m_2.sh -# @summary Test that output of 'jps -m' shows proper output for main with no args. - -. ${TESTSRC-.}/../../jvmstat/testlibrary/utils.sh - -setup -verify_os - -cleanup() { - kill_proc ${SLEEPER_PID} -} - -trap 'cleanup' 0 HUP INT QUIT TERM - -JPS="${TESTJAVA}/bin/jps" -JAVA="${TESTJAVA}/bin/java" - -# fire up a Sleeper that blocks indefinitely - but don't pass -# any args to Sleeper.main(), as we need to inspect jps output -# for the no args condition. -# -${JAVA} -XX:+UsePerfData -cp ${TESTCLASSPATH:-${TESTCLASSES}} Sleeper & -SLEEPER_PID=$! - -${JPS} -J-XX:+UsePerfData -m | awk -f ${TESTSRC}/jps-m_Output2.awk -RC=$? - -cleanup - -exit ${RC} - diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/jps-m_Output1.awk --- a/jdk/test/sun/tools/jps/jps-m_Output1.awk Thu Aug 14 15:54:04 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -# -BEGIN { - totallines=0; matched=0 - } - -/^[0-9]+ Jps -m$/ { - matched++; - } - - { totallines++; print $0 } - -END { - if ((totallines > 0) && (matched >= 1)) { - exit 0 - } - else { - exit 1 - } - } diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/jps-m_Output2.awk --- a/jdk/test/sun/tools/jps/jps-m_Output2.awk Thu Aug 14 15:54:04 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -# -BEGIN { - totallines=0; matched=0 - } - -/^[0-9]+ Sleeper$/ { - matched++; - } - -/^[0-9]+ Jps -m$/ { - matched++; - } - - { totallines++; print $0 } - -END { - if ((totallines > 0) && (matched >= 2)) { - exit 0 - } - else { - exit 1 - } - } diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/jps-q.sh --- a/jdk/test/sun/tools/jps/jps-q.sh Thu Aug 14 15:54:04 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -# -# Copyright (c) 2004, 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. -# - -# @test -# @bug 4990825 -# @run shell jps-q.sh -# @summary Test that output of 'jps -q' shows only the process ids - -. ${TESTSRC-.}/../../jvmstat/testlibrary/utils.sh - -setup -verify_os - -JPS="${TESTJAVA}/bin/jps" - -${JPS} -J-XX:+UsePerfData -q | awk -f ${TESTSRC}/jps-q_Output1.awk diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/jps-q_Output1.awk --- a/jdk/test/sun/tools/jps/jps-q_Output1.awk Thu Aug 14 15:54:04 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -# -BEGIN { - totallines=0; matched=0 - } - -/^[0-9]+$/ { - matched++; - } - - { totallines++; print $0 } - -END { - if ((totallines > 0) && (matched >= 1)) { - exit 0 - } - else { - exit 1 - } - } diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/jps-v_1.sh --- a/jdk/test/sun/tools/jps/jps-v_1.sh Thu Aug 14 15:54:04 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -# -# Copyright (c) 2004, 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. -# - -# @test -# @bug 4990825 -# @run shell jps-v_1.sh -# @summary Test that output of 'jps -v' shows JVM arguments - -. ${TESTSRC-.}/../../jvmstat/testlibrary/utils.sh - -setup -verify_os - -JPS="${TESTJAVA}/bin/jps" - -${JPS} -J-XX:+UsePerfData -J-XX:+UseParallelGC -v | awk -f ${TESTSRC}/jps-v_Output1.awk diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/jps-v_Output1.awk --- a/jdk/test/sun/tools/jps/jps-v_Output1.awk Thu Aug 14 15:54:04 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -# -BEGIN { - totallines=0; matched=0 - } - -/^[0-9]+ Jps.* -XX:\+UseParallelGC$/ { - matched++; - } - - { totallines++; print $0 } - -END { - if ((totallines > 0) && (matched >= 1)) { - exit 0 - } - else { - exit 1 - } - } diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/jps-vm_1.sh --- a/jdk/test/sun/tools/jps/jps-vm_1.sh Thu Aug 14 15:54:04 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -# -# Copyright (c) 2004, 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. -# - -# @test -# @bug 4990825 -# @run shell jps-vm_1.sh -# @summary Test that output of 'jps -vm' shows JVM arguments and main args - -. ${TESTSRC-.}/../../jvmstat/testlibrary/utils.sh - -setup -verify_os - -JPS="${TESTJAVA}/bin/jps" - -${JPS} -J-XX:+UsePerfData -J-XX:+UseParallelGC -vm | awk -f ${TESTSRC}/jps-vm_Output1.awk diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/jps-vm_Output1.awk --- a/jdk/test/sun/tools/jps/jps-vm_Output1.awk Thu Aug 14 15:54:04 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -# -BEGIN { - totallines=0; matched=0 - } - -/^[0-9]+ Jps -vm.* -XX:\+UseParallelGC$/ { - matched++; - } - - { totallines++; print $0 } - -END { - if ((totallines > 0) && (matched >= 1)) { - exit 0 - } - else { - exit 1 - } - } diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/jps_Output1.awk --- a/jdk/test/sun/tools/jps/jps_Output1.awk Thu Aug 14 15:54:04 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -# -BEGIN { - totallines=0; matched=0 - } - -# match on a main class name -/^[0-9]+ [a-z|A-Z][a-z|A-Z|0-9|\$|\+]*$/ { - matched++; - } - -# or match on a path name to a jar or war file - note, jar files ending with -# ".jar" is only a convention, not a requirement. Theoretically, -# any valid file name could occur here. -/^[0-9]+ .*\.(jar|war)$/ { - matched++; -} - -# or match on the condition that the class name is not available -/^[0-9]+ -- .*$/ { - matched++; - } - -# or match an empty class name -/^[0-9]+ $/ { - matched++; - } - - { totallines++; print $0 } - -END { - if ((totallines > 0) && (matched == totallines)) { - exit 0 - } - else { - exit 1 - } - } diff -r 12bcf9a5994f -r 76e62811f63b jdk/test/sun/tools/jps/vmflags --- a/jdk/test/sun/tools/jps/vmflags Thu Aug 14 15:54:04 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -+DisableExplicitGC