< prev index next >

test/serviceability/sa/TestClassLoaderStats.java

Print this page
rev 8429 : 8081037: serviceability/sa/ tests time out on Windows

*** 22,57 **** */ import jdk.test.lib.Platform; import jdk.test.lib.ProcessTools; import jdk.test.lib.OutputAnalyzer; /* * @test * @library /testlibrary * @build jdk.test.lib.* * @run main TestClassLoaderStats */ public class TestClassLoaderStats { public static void main(String[] args) throws Exception { if (!Platform.shouldSAAttach()) { System.out.println("SA attach not expected to work - test skipped."); 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()); 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"); } } --- 22,68 ---- */ 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 { public static void main(String[] args) throws Exception { if (!Platform.shouldSAAttach()) { System.out.println("SA attach not expected to work - test skipped."); return; } + LingeredApp app = null; + try { + app = LingeredApp.startApp(); + + 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(); + } } }
< prev index next >