0N/A#!/bin/sh
0N/A
0N/A#
4410N/A# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
0N/A# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
0N/A#
0N/A# This code is free software; you can redistribute it and/or modify it
0N/A# under the terms of the GNU General Public License version 2 only, as
0N/A# published by the Free Software Foundation.
0N/A#
0N/A# This code is distributed in the hope that it will be useful, but WITHOUT
0N/A# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
0N/A# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
0N/A# version 2 for more details (a copy is included in the LICENSE file that
0N/A# accompanied this code).
0N/A#
0N/A# You should have received a copy of the GNU General Public License version
0N/A# 2 along with this work; if not, write to the Free Software Foundation,
0N/A# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
0N/A#
2362N/A# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
2362N/A# or visit www.oracle.com if you need additional information or have any
2362N/A# questions.
0N/A#
0N/A
0N/A
0N/A# @test
0N/A# @bug 6321286
0N/A# @summary Unit test for jmap utility
0N/A#
0N/A# @library ../common
0N/A# @build SimpleApplication ShutdownSimpleApplication
0N/A# @run shell Basic.sh
0N/A
0N/A. ${TESTSRC}/../common/CommonSetup.sh
0N/A. ${TESTSRC}/../common/ApplicationSetup.sh
0N/A
2617N/A# Start application and use PORTFILE for coordination
0N/APORTFILE="${TESTCLASSES}"/shutdown.port
2617N/AstartApplication SimpleApplication "${PORTFILE}"
2617N/A
2617N/A# all return statuses are checked in this test
2617N/Aset +e
0N/A
0N/Afailed=0
0N/A
0N/A# -histo[:live] option
4410N/A${JMAP} -J-XX:+UsePerfData -histo $appJavaPid
0N/Aif [ $? != 0 ]; then failed=1; fi
0N/A
4410N/A${JMAP} -J-XX:+UsePerfData -histo:live $appJavaPid
0N/Aif [ $? != 0 ]; then failed=1; fi
0N/A
0N/A# -dump option
2617N/ADUMPFILE="java_pid${appJavaPid}.hprof"
4410N/A${JMAP} -J-XX:+UsePerfData -dump:format=b,file=${DUMPFILE} $appJavaPid
0N/Aif [ $? != 0 ]; then failed=1; fi
0N/A
0N/A# check that heap dump is parsable
0N/A${JHAT} -parseonly true ${DUMPFILE}
0N/Aif [ $? != 0 ]; then failed=1; fi
0N/A
0N/A# dump file is large so remove it
0N/Arm ${DUMPFILE}
0N/A
0N/A# -dump:live option
4410N/A${JMAP} -J-XX:+UsePerfData -dump:live,format=b,file=${DUMPFILE} $appJavaPid
0N/Aif [ $? != 0 ]; then failed=1; fi
0N/A
0N/A# check that heap dump is parsable
0N/A${JHAT} -parseonly true ${DUMPFILE}
0N/Aif [ $? != 0 ]; then failed=1; fi
0N/A
0N/A# dump file is large so remove it
2617N/Arm -f ${DUMPFILE}
0N/A
2617N/Aset -e
2617N/A
2617N/AstopApplication "${PORTFILE}"
2617N/AwaitForApplication
0N/A
0N/Aexit $failed