# HG changeset patch # User ykantser # Date 1432728800 -7200 # Wed May 27 14:13:20 2015 +0200 # Node ID f258fc6e9353a0bf26058d638205d47df3415d87 # Parent 9fa5219f0206549a7fab32b50680293dc25b300f 8081037: serviceability/sa/ tests time out on Windows diff --git a/test/serviceability/sa/TestClassLoaderStats.java b/test/serviceability/sa/TestClassLoaderStats.java --- a/test/serviceability/sa/TestClassLoaderStats.java +++ b/test/serviceability/sa/TestClassLoaderStats.java @@ -24,11 +24,14 @@ import jdk.test.lib.Platform; import jdk.test.lib.ProcessTools; import jdk.test.lib.OutputAnalyzer; +import jdk.test.lib.apps.LingeredApp; /* * @test + * @library /../../test/lib/share/classes * @library /testlibrary * @build jdk.test.lib.* + * @build jdk.test.lib.apps.* * @run main TestClassLoaderStats */ public class TestClassLoaderStats { @@ -39,19 +42,27 @@ return; } - ProcessBuilder processBuilder = ProcessTools.createJavaProcessBuilder( - "-XX:+UsePerfData", - "sun.jvm.hotspot.tools.ClassLoaderStats", - Integer.toString(ProcessTools.getProcessId())); - OutputAnalyzer output = ProcessTools.executeProcess(processBuilder); - System.out.println(output.getOutput()); + LingeredApp app = null; + try { + app = LingeredApp.startApp(); - output.shouldHaveExitValue(0); - output.shouldContain("Debugger attached successfully."); - // The class loader stats header needs to be presented in the output: - output.shouldMatch("class_loader\\W+classes\\W+bytes\\W+parent_loader\\W+alive?\\W+type"); - output.stderrShouldNotMatch("[E|e]xception"); - output.stderrShouldNotMatch("[E|e]rror"); + System.out.println("Attaching sun.jvm.hotspot.tools.ClassLoaderStats to " + app.getPid()); + ProcessBuilder processBuilder = ProcessTools.createJavaProcessBuilder( + "-XX:+UsePerfData", + "sun.jvm.hotspot.tools.ClassLoaderStats", + Long.toString(app.getPid())); + OutputAnalyzer output = ProcessTools.executeProcess(processBuilder); + System.out.println(output.getOutput()); + + output.shouldHaveExitValue(0); + output.shouldContain("Debugger attached successfully."); + // The class loader stats header needs to be presented in the output: + output.shouldMatch("class_loader\\W+classes\\W+bytes\\W+parent_loader\\W+alive?\\W+type"); + output.stderrShouldNotMatch("[E|e]xception"); + output.stderrShouldNotMatch("[E|e]rror"); + } finally { + app.stopApp(); + } } } diff --git a/test/serviceability/sa/TestStackTrace.java b/test/serviceability/sa/TestStackTrace.java --- a/test/serviceability/sa/TestStackTrace.java +++ b/test/serviceability/sa/TestStackTrace.java @@ -24,11 +24,14 @@ import jdk.test.lib.OutputAnalyzer; import jdk.test.lib.Platform; import jdk.test.lib.ProcessTools; +import jdk.test.lib.apps.LingeredApp; /* * @test + * @library /../../test/lib/share/classes * @library /testlibrary * @build jdk.test.lib.* + * @build jdk.test.lib.apps.* * @run main TestStackTrace */ public class TestStackTrace { @@ -39,17 +42,25 @@ return; } - ProcessBuilder processBuilder = ProcessTools.createJavaProcessBuilder( - "-XX:+UsePerfData", - "sun.jvm.hotspot.tools.StackTrace", - Integer.toString(ProcessTools.getProcessId())); - OutputAnalyzer output = ProcessTools.executeProcess(processBuilder); - System.out.println(output.getOutput()); + LingeredApp app = null; + try { + app = LingeredApp.startApp(); - output.shouldHaveExitValue(0); - output.shouldContain("Debugger attached successfully."); - output.stderrShouldNotMatch("[E|e]xception"); - output.stderrShouldNotMatch("[E|e]rror"); + System.out.println("Attaching sun.jvm.hotspot.tools.StackTrace to " + app.getPid()); + ProcessBuilder processBuilder = ProcessTools.createJavaProcessBuilder( + "-XX:+UsePerfData", + "sun.jvm.hotspot.tools.StackTrace", + Long.toString(app.getPid())); + OutputAnalyzer output = ProcessTools.executeProcess(processBuilder); + System.out.println(output.getOutput()); + + output.shouldHaveExitValue(0); + output.shouldContain("Debugger attached successfully."); + output.stderrShouldNotMatch("[E|e]xception"); + output.stderrShouldNotMatch("[E|e]rror"); + } finally { + app.stopApp(); + } } }