提交 c0b81ca8 编写于 作者: A amurillo

Merge

...@@ -27,6 +27,7 @@ import java.rmi.RemoteException; ...@@ -27,6 +27,7 @@ import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry; import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry; import java.rmi.registry.Registry;
import java.util.Arrays; import java.util.Arrays;
import java.util.regex.Pattern;
import static jdk.testlibrary.Asserts.*; import static jdk.testlibrary.Asserts.*;
import jdk.testlibrary.JDKToolLauncher; import jdk.testlibrary.JDKToolLauncher;
...@@ -34,6 +35,7 @@ import jdk.testlibrary.OutputAnalyzer; ...@@ -34,6 +35,7 @@ import jdk.testlibrary.OutputAnalyzer;
import jdk.testlibrary.ProcessThread; import jdk.testlibrary.ProcessThread;
import jdk.testlibrary.TestThread; import jdk.testlibrary.TestThread;
import jdk.testlibrary.Utils; import jdk.testlibrary.Utils;
import jdk.testlibrary.ProcessTools;
/** /**
* The base class for tests of jstatd. * The base class for tests of jstatd.
...@@ -93,8 +95,11 @@ public final class JstatdTest { ...@@ -93,8 +95,11 @@ public final class JstatdTest {
if (tool == "rmiregistry") { if (tool == "rmiregistry") {
processName = "registryimpl"; processName = "registryimpl";
} }
Pattern toolInJpsPattern =
Pattern.compile("^\\d+\\s{1}" + processName + "\\s{1}.*-dparent\\.pid\\." + ProcessTools.getProcessId() + ".*");
for (String line : lines) { for (String line : lines) {
if (line.toLowerCase().matches("^\\d+\\s{1}" + processName + "$")) { if (toolInJpsPattern.matcher(line.toLowerCase()).matches()) {
pid = line.split(" ")[0]; pid = line.split(" ")[0];
count++; count++;
} }
...@@ -167,6 +172,8 @@ public final class JstatdTest { ...@@ -167,6 +172,8 @@ public final class JstatdTest {
private OutputAnalyzer runJps() throws Exception { private OutputAnalyzer runJps() throws Exception {
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jps"); JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jps");
launcher.addVMArg("-XX:+UsePerfData"); launcher.addVMArg("-XX:+UsePerfData");
// Run jps with -v flag to obtain -Dparent.pid.<pid>
launcher.addToolArg("-v");
launcher.addToolArg(getDestination()); launcher.addToolArg(getDestination());
String[] cmd = launcher.getCommand(); String[] cmd = launcher.getCommand();
...@@ -286,7 +293,7 @@ public final class JstatdTest { ...@@ -286,7 +293,7 @@ public final class JstatdTest {
* jstatd -J-XX:+UsePerfData -J-Djava.security.policy=all.policy -n serverName * jstatd -J-XX:+UsePerfData -J-Djava.security.policy=all.policy -n serverName
* jstatd -J-XX:+UsePerfData -J-Djava.security.policy=all.policy -p port -n serverName * jstatd -J-XX:+UsePerfData -J-Djava.security.policy=all.policy -p port -n serverName
*/ */
private String[] getJstatdCmd() throws UnknownHostException { private String[] getJstatdCmd() throws Exception {
JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jstatd"); JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jstatd");
launcher.addVMArg("-XX:+UsePerfData"); launcher.addVMArg("-XX:+UsePerfData");
String testSrc = System.getProperty("test.src"); String testSrc = System.getProperty("test.src");
...@@ -294,6 +301,8 @@ public final class JstatdTest { ...@@ -294,6 +301,8 @@ public final class JstatdTest {
assertTrue(policy.exists() && policy.isFile(), assertTrue(policy.exists() && policy.isFile(),
"Security policy " + policy.getAbsolutePath() + " does not exist or not a file"); "Security policy " + policy.getAbsolutePath() + " does not exist or not a file");
launcher.addVMArg("-Djava.security.policy=" + policy.getAbsolutePath()); launcher.addVMArg("-Djava.security.policy=" + policy.getAbsolutePath());
// -Dparent.pid.<pid> will help to identify jstad process started by this test
launcher.addVMArg("-Dparent.pid." + ProcessTools.getProcessId());
if (port != null) { if (port != null) {
launcher.addToolArg("-p"); launcher.addToolArg("-p");
launcher.addToolArg(port); launcher.addToolArg(port);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册