8054888: Runtime: Add Diagnostic Command that prints the class hierarchy
Summary: Added the VM.class_hierarhcy DCMD
Reviewed-by: stefank, miauno
## Copyright (c) 2013, 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.## This code is distributed in the hope that it will be useful, but WITHOUT# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License# version 2 for more details (a copy is included in the LICENSE file that# accompanied this code).## You should have received a copy of the GNU General Public License version# 2 along with this work; if not, write to the Free Software Foundation,# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.## 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.## Profile-based Test Group Definitions## These groups define the tests that cover the different possible runtimes:# - compact1, compact2, compact3, full JRE, JDK## In addition they support testing of the minimal VM on compact1 and compact2.# Essentially this defines groups based around the specified API's and VM# services available in the runtime.## The groups are defined hierarchically in two forms:# - The need_xxx groups list all the tests that have a dependency on# a specific profile. This is either because it tests a feature in# that profile, or the test infrastructure uses a feature in that# profile.# - The primary groups are defined in terms of the other primary groups# combined with the needs_xxx groups (including and excluding them as# appropriate). For example the jre can run all tests from compact3, plus# those from needs_jre, but excluding those from need_jdk.## The bottom group defines all the actual tests to be considered, simply# by listing the top-level test directories.## To use a group simply list it on the jtreg command line eg:# jtreg :jdk# runs all tests. While# jtreg :compact2# runs those tests that only require compact1 and compact2 API's.#hotspot_all = \ /# Full JDK can run all tests#jdk = \ :jre \ :needs_jdk# Tests that require a full JDK to execute. Either they test a feature# only in the JDK or they use tools that are only in the JDK. The latter# can be resolved in some cases by using tools from the compile-jdk.#needs_jdk = \ gc/metaspace/CompressedClassSpaceSizeInJmapHeap.java \ gc/metaspace/TestMetaspacePerfCounters.java \ gc/metaspace/TestPerfCountersAndMemoryPools.java \ runtime/6819213/TestBootNativeLibraryPath.java \ runtime/7158988/FieldMonitor.java \ runtime/Metaspace/FragmentMetaspace.java \ runtime/NMT/BaselineWithParameter.java \ runtime/NMT/JcmdBaselineDetail.java \ runtime/NMT/JcmdDetailDiff.java \ runtime/NMT/JcmdScaleDetail.java \ runtime/NMT/JcmdScale.java \ runtime/NMT/JcmdSummaryDiff.java \ runtime/NMT/JcmdWithNMTDisabled.java \ runtime/NMT/MallocRoundingReportTest.java \ runtime/NMT/MallocSiteHashOverflow.java \ runtime/NMT/MallocStressTest.java \ runtime/NMT/MallocTestType.java \ runtime/NMT/MallocTrackingVerify.java \ runtime/NMT/ReleaseCommittedMemory.java \ runtime/NMT/ReleaseNoCommit.java \ runtime/NMT/ShutdownTwice.java \ runtime/NMT/SummaryAfterShutdown.java \ runtime/NMT/SummarySanityCheck.java \ runtime/NMT/ThreadedMallocTestType.java \ runtime/NMT/ThreadedVirtualAllocTestType.java \ runtime/NMT/VirtualAllocCommitUncommitRecommit.java \ runtime/NMT/VirtualAllocTestType.java \ runtime/RedefineObject/TestRedefineObject.java \ runtime/Thread/TestThreadDumpMonitorContention.java \ runtime/Thread/ThreadPriorities.java \ runtime/XCheckJniJsig/XCheckJSig.java \ serviceability/attach/AttachWithStalePidFile.java \ serviceability/sa/jmap-hprof/JMapHProfLargeHeapTest.java \ serviceability/dcmd/vm/DynLibsTest.java# JRE adds further tests to compact3#jre = \ :compact3 \ :needs_jre \ -:needs_jdk# Tests that require the full JRE#needs_jre = \ compiler/c2/6852078/Test6852078.java \ compiler/c2/7047069/Test7047069.java \ runtime/6294277/SourceDebugExtension.java \ runtime/ClassFile/JsrRewriting.java \ runtime/ClassFile/OomWhileParsingRepeatedJsr.java# Compact 3 adds further tests to compact2#compact3 = \ :compact2 \ :needs_compact3 \ -:needs_jre \ -:needs_jdk# Tests that require compact3 API's#needs_compact3 = \ gc/6581734/Test6581734.java \ gc/7072527/TestFullGCCount.java \ gc/g1/TestHumongousAllocInitialMark.java \ gc/arguments/TestG1HeapRegionSize.java \ gc/metaspace/TestMetaspaceMemoryPool.java \ gc/arguments/TestDynMinHeapFreeRatio.java \ gc/arguments/TestDynMaxHeapFreeRatio.java \ gc/g1/TestShrinkAuxiliaryData00.java \ gc/g1/TestShrinkAuxiliaryData05.java \ gc/g1/TestShrinkAuxiliaryData10.java \ gc/g1/TestShrinkAuxiliaryData15.java \ gc/g1/TestShrinkAuxiliaryData20.java \ gc/g1/TestShrinkAuxiliaryData25.java \ gc/g1/TestShrinkAuxiliaryData30.java \ gc/survivorAlignment \ runtime/InternalApi/ThreadCpuTimesDeadlock.java \ serviceability/threads/TestFalseDeadLock.java \ compiler/codecache/jmx \ serviceability/dcmd# Compact 2 adds full VM testscompact2 = \ :compact2_minimal \ :compact1 \ :needs_full_vm_compact2 \ -:needs_compact3 \ -:needs_jre \ -:needs_jdk# Tests that require compact2 API's and a full VM#needs_full_vm_compact2 =# Compact 1 adds full VM tests#compact1 = \ :compact1_minimal \ :needs_full_vm_compact1 \ -:needs_compact2 \ -:needs_full_vm_compact2 \ -:needs_compact3 \ -:needs_jre \ -:needs_jdk# Tests that require compact1 API's and a full VM#needs_full_vm_compact1 = \ runtime/NMT \ gc/g1/TestRegionAlignment.java \ gc/g1/TestShrinkToOneRegion.java \ gc/metaspace/G1AddMetaspaceDependency.java \ gc/startup_warnings/TestCMS.java \ gc/startup_warnings/TestDefaultMaxRAMFraction.java \ gc/startup_warnings/TestDefNewCMS.java \ gc/startup_warnings/TestParallelGC.java \ gc/startup_warnings/TestParallelScavengeSerialOld.java \ gc/startup_warnings/TestParNewCMS.java \ gc/startup_warnings/TestParNewSerialOld.java \ runtime/SharedArchiveFile/SharedArchiveFile.java# Minimal VM on Compact 2 adds in some compact2 tests#compact2_minimal = \ :compact1_minimal \ :needs_compact2 \ -:needs_full_vm_compact2 \ -:needs_compact3 \ -:needs_jre \ -:needs_jdk# Tests that require compact2 API's#needs_compact2 = \ compiler/jsr292/CreatesInterfaceDotEqualsCallInfo.java# All tests that run on the most minimal configuration: Minimal VM on Compact 1compact1_minimal = \ serviceability/ \ compiler/ \ sanity/ \ runtime/ \ gc/ \ -:needs_full_vm_compact1 \ -:needs_full_vm_compact2 \ -:needs_compact2 \ -:needs_compact3 \ -:needs_jre \ -:needs_jdk# All tests that explicitly set the G1 GC#needs_g1gc = \ compiler/regalloc/C1ObjectSpillInLogicOp.java \ gc/TestSystemGC.java \ gc/arguments/TestAlignmentToUseLargePages.java \ gc/arguments/TestG1HeapRegionSize.java \ gc/arguments/TestG1HeapSizeFlags.java \ gc/arguments/TestG1PercentageOptions.java \ gc/arguments/TestMaxHeapSizeTools.java \ gc/arguments/TestMaxNewSize.java \ gc/arguments/TestParallelGCThreads.java \ gc/arguments/TestUseCompressedOopsErgo.java \ gc/class_unloading/TestG1ClassUnloadingHWM.java \ gc/g1/ \ gc/metaspace/G1AddMetaspaceDependency.java \ gc/metaspace/TestMetaspacePerfCounters.java \ gc/startup_warnings/TestG1.java \ gc/whitebox/TestConcMarkCycleWB.java# All tests that explicitly set the serial GC#needs_serialgc = \ gc/TestSystemGC.java \ gc/arguments/TestAlignmentToUseLargePages.java \ gc/arguments/TestMaxNewSize.java \ gc/arguments/TestSerialHeapSizeFlags.java \ gc/arguments/TestUseCompressedOopsErgo.java \ gc/defnew/HeapChangeLogging.java \ gc/metaspace/TestMetaspacePerfCounters.java \ gc/metaspace/TestPerfCountersAndMemoryPools.java \ gc/startup_warnings/TestSerialGC.java # All tests that explicitly set the parallel GC#needs_parallelgc = \ gc/TestSystemGC.java \ gc/arguments/TestAlignmentToUseLargePages.java \ gc/arguments/TestMaxNewSize.java \ gc/arguments/TestMinInitialErgonomics.java \ gc/arguments/TestParallelGCThreads.java \ gc/arguments/TestUseCompressedOopsErgo.java \ gc/metaspace/TestMetaspacePerfCounters.java \ gc/parallelScavenge/ \ gc/startup_warnings/TestParallelGC.java \ gc/startup_warnings/TestParallelScavengeSerialOld.java# All tests that explicitly set the CMS GC#needs_cmsgc = \ gc/6581734/Test6581734.java \ gc/TestSystemGC.java \ gc/arguments/TestAlignmentToUseLargePages.java \ gc/arguments/TestCMSHeapSizeFlags.java \ gc/arguments/TestMaxNewSize.java \ gc/arguments/TestParallelGCThreads.java \ gc/arguments/TestUseCompressedOopsErgo.java \ gc/class_unloading/TestCMSClassUnloadingEnabledHWM.java \ gc/concurrentMarkSweep/ \ gc/startup_warnings/TestCMS.java \ gc/startup_warnings/TestDefNewCMS.java \ gc/startup_warnings/TestParNewCMS.java# All tests that explicitly set some GC#needs_gc = \ :needs_g1gc \ :needs_serialgc \ :needs_parallelgc \ :needs_cmsgc# All tests that do not set any GC explicitly#not_needs_gc = \ :jdk \ -:needs_gc# All tests that could be executed with the G1 GC without VM flags conflict#applicable_g1gc = \ :jdk \ -:needs_serialgc \ -:needs_parallelgc \ -:needs_cmsgc# All tests that could be executed with the serial GC without VM flags conflict#applicable_serialgc = \ :jdk \ -:needs_g1gc \ -:needs_parallelgc \ -:needs_cmsgc# All tests that could be executed with the parallel GC without VM flags conflict#applicable_parallelgc = \ :jdk \ -:needs_g1gc \ -:needs_serialgc \ -:needs_cmsgc# All tests that could be executed with the CMS GC without VM flags conflict#applicable_cmsgc = \ :jdk \ -:needs_g1gc \ -:needs_serialgc \ -:needs_parallelgc# When called from top level the test suites use the hotspot_ prefixhotspot_wbapitest = \ sanity/hotspot_compiler_1 = \ compiler/arraycopy/ \ compiler/c1/ \ compiler/c2/ \ -compiler/c2/5091921/Test6850611.java \ -compiler/c2/5091921/Test6890943.java \ -compiler/c2/5091921/Test6905845.java \ -compiler/c2/6340864 \ -compiler/c2/6589834 \ -compiler/c2/6603011 \ -compiler/c2/6912517 \ -compiler/c2/6792161 \ -compiler/c2/7070134 \ -compiler/c2/8004867hotspot_compiler_2 = \ compiler/classUnloading/ \ compiler/codecache/ \ compiler/codegen/ \ compiler/cpuflags/ \ compiler/dependencies/ \ compiler/eliminateAutobox/ \ compiler/escapeAnalysis/ \ compiler/exceptions/ \ compiler/floatingpoint/ \ compiler/gcbarriers/ \ compiler/inlining/ \ compiler/integerArithmetic/ \ compiler/interpreter/ \ -compiler/codegen/7184394 \ -compiler/codecache/stresshotspot_compiler_3 = \ compiler/intrinsics/ \ compiler/jsr292/ \ compiler/loopopts/ \ compiler/macronodes/ \ compiler/osr/ \ compiler/regalloc/ \ compiler/runtime/ \ compiler/startup/ \ compiler/types/ \ compiler/uncommontrap/ \ compiler/unsafe/ \ -compiler/intrinsics/bmi/verifycode \ -compiler/intrinsics/mathexact \ -compiler/intrinsics/multiplytolen \ -compiler/intrinsics/sha \ -compiler/loopopts/7052494 \ -compiler/runtime/6826736hotspot_compiler_closed = \ closed/compiler/c1/ \ closed/compiler/c2/ \ closed/compiler/codegen/ \ closed/compiler/escapeAnalysis/ \ closed/compiler/interpreter/ \ closed/compiler/jsr292/ \ closed/compiler/loopopts/ \ closed/compiler/oracle/ \ closed/compiler/runtime/ \ closed/compiler/symantec/ \ -closed/compiler/c1/4477197 \ -closed/compiler/c1/5040872 \ -closed/compiler/c1/6507107 \ -closed/compiler/c2/4344895 \ -closed/compiler/c2/4485006 \ -closed/compiler/c2/4523683 \ -closed/compiler/c2/4620290 \ -closed/compiler/c2/4998314 \ -closed/compiler/c2/6329104 \ -closed/compiler/c2/6434117 \ -closed/compiler/c2/6547163 \ -closed/compiler/c2/6563987 \ -closed/compiler/c2/6595044 \ -closed/compiler/codegen/6440479 \ -closed/compiler/codegen/6603011 \ -closed/compiler/interpreter/5034475 \ -closed/compiler/jsr292/LongLambdaFormDynamicStackDepth.java \ -closed/compiler/loopopts/4463485 \ -closed/compiler/loopopts/8021898hotspot_gc = \ sanity/ExecuteInternalVMTests.java \ gc/ \ -gc/metaspace/CompressedClassSpaceSizeInJmapHeap.javahotspot_gc_closed = \ sanity/ExecuteInternalVMTests.javahotspot_gc_gcold = \ stress/gc/TestGCOld.javahotspot_runtime = \ runtime/ \ -runtime/6888954/vmerrors.sh \ -runtime/RedefineObject/TestRedefineObject.java \ -runtime/8003720/Test8003720.java \ -runtime/Metaspace/FragmentMetaspace.java \ -runtime/Metaspace/FragmentMetaspaceSimple.java \ -runtime/Thread/TestThreadDumpMonitorContention.java \ -runtime/SharedArchiveFile/SharedBaseAddress.java \ -runtime/memory/ReserveMemory.java \ -runtime/Unsafe/RangeCheck.java \ -runtime/SharedArchiveFile/CdsSameObjectAlignment.java \ -runtime/SharedArchiveFile/DefaultUseWithClient.java \ -runtime/Thread/CancellableThreadTest.java \ -runtime/7158988/FieldMonitor.javahotspot_runtime_closed = \ sanity/ExecuteInternalVMTests.java \ testlibrary_tests/TestMutuallyExclusivePlatformPredicates.javahotspot_serviceability = \ sanity/ExecuteInternalVMTests.java \ serviceability/dcmd/compilerhotspot_jprt = \ :hotspot_wbapitest \ :hotspot_compiler_1 \ :hotspot_compiler_2 \ :hotspot_compiler_3 \ :hotspot_compiler_closed \ :hotspot_gc \ :hotspot_gc_closed \ :hotspot_gc_gcold \ :hotspot_runtime \ :hotspot_runtime_closed \ :hotspot_serviceability#All tests that depends on nashorn extension.#needs_nashorn = \ compiler/jsr292/CreatesInterfaceDotEqualsCallInfo.java#All tests that do not depends on nashorn extension#not_needs_nashorn = \ :jdk \ -:needs_nashorn