< 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 >