Path: blob/master/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/common/StressHierarchy3.java
41161 views
/*1* Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation.7*8* This code is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License11* version 2 for more details (a copy is included in the LICENSE file that12* accompanied this code).13*14* You should have received a copy of the GNU General Public License version15* 2 along with this work; if not, write to the Free Software Foundation,16* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.17*18* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA19* or visit www.oracle.com if you need additional information or have any20* questions.21*/22package metaspace.stressHierarchy.common;2324import metaspace.stressHierarchy.common.classloader.tree.Tree;25import nsk.share.test.ExecutionController;26import nsk.share.test.Tests;2728/**29* 1. Test case cleans up all levels except bottom, then checks that bottom level is alive (and whole tree).30* 2. Then test cleans up whole tree and checks that it is reclaimed.31*/32public class StressHierarchy3 extends StressHierarchyBaseClass {3334public static void main(String[] args) {35try {36StressHierarchyBaseClass.args = args;37Tests.runTest(new StressHierarchy3(), args);38} catch (OutOfMemoryError error) {39System.out.print("Got OOME: " + error.getMessage());40}41}4243@Override44protected void runTestLogic(Tree tree, ExecutionController stresser)45throws Throwable {4647for (int cleanupLevel = tree.getMaxLevel() - 1; cleanupLevel >= 0; cleanupLevel--) {48if (! stresser.continueExecution()) { return; }49tree.cleanupLevel(cleanupLevel);50log.info("cleanupLevel=" + cleanupLevel);51}5253triggerUnloadingHelper.triggerUnloading(stresser);5455if (! stresser.continueExecution()) { return; }5657log.info("Check bottom level alive ");58performChecksHelper.checkLevelAlive(tree, tree.getMaxLevel());5960if (! stresser.continueExecution()) { return; }6162log.info("Cleanup all");63tree.cleanupLevel(tree.getMaxLevel());6465triggerUnloadingHelper.triggerUnloading(stresser);6667log.info("Check bottom level reclaimed");68performChecksHelper.checkLevelReclaimed(tree, tree.getMaxLevel());69}7071}727374