< prev index next >

test/sun/tools/jhsdb/BasicLauncherTest.java

Print this page

        

*** 29,49 **** --- 29,54 ---- * @build jdk.testlibrary.* * @build jdk.test.lib.apps.* * @run main BasicLauncherTest */ + import static jdk.testlibrary.Asserts.assertTrue; + import static jdk.testlibrary.Asserts.fail; + import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; + import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.Arrays; import jdk.testlibrary.JDKToolLauncher; import jdk.testlibrary.Utils; import jdk.testlibrary.OutputAnalyzer; import jdk.testlibrary.ProcessTools; import jdk.test.lib.apps.LingeredApp; + import jdk.test.lib.hprof.HprofParser; import jdk.testlibrary.Platform; public class BasicLauncherTest { private final static String toolName = "jhsdb";
*** 97,107 **** public static void launch(String expectedMessage, List<String> toolArgs) throws IOException { System.out.println("Starting LingeredApp"); try { ! theApp = LingeredApp.startApp(); System.out.println("Starting " + toolName + " " + toolArgs.get(0) + " against " + theApp.getPid()); JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK(toolName); for (String cmd : toolArgs) { --- 102,112 ---- public static void launch(String expectedMessage, List<String> toolArgs) throws IOException { System.out.println("Starting LingeredApp"); try { ! theApp = LingeredApp.startApp(Arrays.asList("-Xmx256m")); System.out.println("Starting " + toolName + " " + toolArgs.get(0) + " against " + theApp.getPid()); JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK(toolName); for (String cmd : toolArgs) {
*** 127,136 **** --- 132,163 ---- throws IOException { launch(expectedMessage, Arrays.asList(toolArgs)); } + public static void testHeapDump() throws IOException { + File dump = new File("jhsdb.jmap.dump." + + System.currentTimeMillis() + ".hprof"); + if (dump.exists()) { + dump.delete(); + } + dump.deleteOnExit(); + + launch("heap written to", "jmap", + "--binaryheap", "--dumpfile=" + dump.getAbsolutePath()); + + assertTrue(dump.exists() && dump.isFile(), + "Could not create dump file " + dump.getAbsolutePath()); + + try { + HprofParser.parse(dump); + } catch (Exception e) { + e.printStackTrace(); + fail("Could not parse dump file " + dump.getAbsolutePath()); + } + } + public static void main(String[] args) throws IOException { if (!Platform.shouldSAAttach()) { // Silently skip the test if we don't have enough permissions to attach
*** 143,152 **** --- 170,181 ---- launch("No deadlocks found", "jstack"); launch("compiler detected", "jmap"); launch("Java System Properties", "jinfo"); launch("java.threads", "jsnap"); + testHeapDump(); + // The test throws RuntimeException on error. // IOException is thrown if LingeredApp can't start because of some bad // environment condition System.out.println("Test PASSED"); }
< prev index next >