Path: blob/aarch64-shenandoah-jdk8u272-b10/hotspot/test/gc/g1/TestPrintRegionRememberedSetInfo.java
32284 views
/*1* Copyright (c) 2013, 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*/2223/**24* @test TestPrintRegionRememberedSetInfo25* @key gc26* @bug 801424027* @summary Test output of G1PrintRegionRememberedSetInfo28* @library /testlibrary29* @run main TestPrintRegionRememberedSetInfo30* @author [email protected]31*/3233import com.oracle.java.testlibrary.*;34import java.lang.Thread;35import java.util.ArrayList;36import java.util.Arrays;3738class RunAndWaitForMarking {39public static void main(String[] args) {40System.gc();41try {42Thread.sleep(200);43} catch (InterruptedException e) {44}45}46}4748public class TestPrintRegionRememberedSetInfo {4950public static String runTest(String arg) throws Exception {51ArrayList<String> finalargs = new ArrayList<String>();52String[] defaultArgs = new String[] {53"-XX:+UseG1GC",54"-Xmx10m",55"-XX:+ExplicitGCInvokesConcurrent",56"-XX:+UnlockDiagnosticVMOptions",57"-XX:+G1PrintRegionLivenessInfo",58"-XX:G1HeapRegionSize=1M",59"-XX:InitiatingHeapOccupancyPercent=0",60};6162finalargs.addAll(Arrays.asList(defaultArgs));63finalargs.add(arg);6465finalargs.add(RunAndWaitForMarking.class.getName());6667ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(68finalargs.toArray(new String[0]));69OutputAnalyzer output = new OutputAnalyzer(pb.start());70output.shouldHaveExitValue(0);7172String result = output.getStdout();73return result;74}7576public static void main(String[] args) throws Exception {77String result;7879result = runTest("-XX:+G1PrintRegionLivenessInfo");80// check that we got region statistics output81if (result.indexOf("PHASE") == -1) {82throw new RuntimeException("Unexpected output from -XX:+PrintRegionLivenessInfo found.");83}8485result = runTest("-XX:-G1PrintRegionLivenessInfo");86if (result.indexOf("remset") != -1) {87throw new RuntimeException("Should find remembered set information in output.");88}89}90}91929394