< prev index next >

test/sun/tools/jmap/BasicJMapTest.java

Print this page
rev 11744 : 8059047: Extract parser/validator from jhat for use in tests

*** 1,7 **** /* ! * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 19,42 **** * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ import java.io.File; import java.util.Arrays; ! import static jdk.testlibrary.Asserts.*; import jdk.testlibrary.JDKToolLauncher; import jdk.testlibrary.OutputAnalyzer; import jdk.testlibrary.ProcessTools; /* * @test * @bug 6321286 * @summary Unit test for jmap utility * @library /lib/testlibrary * @build jdk.testlibrary.* * @run main BasicJMapTest */ public class BasicJMapTest { private static ProcessBuilder processBuilder = new ProcessBuilder(); --- 19,50 ---- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ + import static jdk.testlibrary.Asserts.assertTrue; + import static jdk.testlibrary.Asserts.fail; + import java.io.File; import java.util.Arrays; ! import jdk.test.lib.hprof.HprofParser; import jdk.testlibrary.JDKToolLauncher; import jdk.testlibrary.OutputAnalyzer; import jdk.testlibrary.ProcessTools; /* * @test * @bug 6321286 * @summary Unit test for jmap utility * @library /lib/testlibrary + * @library /../../test/lib/share/classes * @build jdk.testlibrary.* + * @build jdk.test.lib.hprof.* + * @build jdk.test.lib.hprof.module.* + * @build jdk.test.lib.hprof.parser.* + * @build jdk.test.lib.hprof.utils.* * @run main BasicJMapTest */ public class BasicJMapTest { private static ProcessBuilder processBuilder = new ProcessBuilder();
*** 57,84 **** OutputAnalyzer output = jmap("-histo:live"); output.shouldHaveExitValue(0); } private static void testDump() throws Exception { ! File dump = new File("java_pid$" + ProcessTools.getProcessId() + ".hprof"); ! OutputAnalyzer output = jmap("-dump:format=b,file=" + dump.getName()); ! output.shouldHaveExitValue(0); ! output.shouldContain("Heap dump file created"); ! verifyDumpFile(dump); } private static void testDumpLive() throws Exception { File dump = new File("java_pid$" + ProcessTools.getProcessId() + ".hprof"); ! OutputAnalyzer output = jmap("-dump:live,format=b,file=" + dump.getName()); output.shouldHaveExitValue(0); output.shouldContain("Heap dump file created"); verifyDumpFile(dump); } private static void verifyDumpFile(File dump) { ! assertTrue(dump.exists() && dump.isFile(), "Could not create dump file"); ! dump.delete(); } private static OutputAnalyzer jmap(String... toolArgs) throws Exception { JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jmap"); launcher.addVMArg("-XX:+UsePerfData"); --- 65,106 ---- OutputAnalyzer output = jmap("-histo:live"); output.shouldHaveExitValue(0); } private static void testDump() throws Exception { ! dump(false); } private static void testDumpLive() throws Exception { + dump(true); + } + + private static void dump(boolean live) throws Exception { File dump = new File("java_pid$" + ProcessTools.getProcessId() + ".hprof"); ! if (dump.exists()) { ! dump.delete(); ! } ! OutputAnalyzer output; ! if (live) { ! output = jmap("-dump:live,format=b,file=" + dump.getName()); ! } else { ! output = jmap("-dump:format=b,file=" + dump.getName()); ! } output.shouldHaveExitValue(0); output.shouldContain("Heap dump file created"); verifyDumpFile(dump); + dump.delete(); } private static void verifyDumpFile(File dump) { ! 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()); ! } } private static OutputAnalyzer jmap(String... toolArgs) throws Exception { JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jmap"); launcher.addVMArg("-XX:+UsePerfData");
< prev index next >