Mercurial > hg > truffle
comparison test/gc/g1/TestPrintRegionRememberedSetInfo.java @ 10290:05a17f270c7e
8014240: G1: Add remembered set size information to output of G1PrintRegionLivenessInfo
Summary: Improve the output of G1PrintRegionLivenessInfo by adding a per-region remembered set size information column
Reviewed-by: jwilhelm, johnc
author | tschatzl |
---|---|
date | Thu, 16 May 2013 13:02:33 +0200 |
parents | |
children | e3c8767c5cf8 |
comparison
equal
deleted
inserted
replaced
10289:bed55d125e37 | 10290:05a17f270c7e |
---|---|
1 /* | |
2 * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. | |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | |
4 * | |
5 * This code is free software; you can redistribute it and/or modify it | |
6 * under the terms of the GNU General Public License version 2 only, as | |
7 * published by the Free Software Foundation. | |
8 * | |
9 * This code is distributed in the hope that it will be useful, but WITHOUT | |
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
12 * version 2 for more details (a copy is included in the LICENSE file that | |
13 * accompanied this code). | |
14 * | |
15 * You should have received a copy of the GNU General Public License version | |
16 * 2 along with this work; if not, write to the Free Software Foundation, | |
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. | |
18 * | |
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA | |
20 * or visit www.oracle.com if you need additional information or have any | |
21 * questions. | |
22 */ | |
23 | |
24 /** | |
25 * @test TestPrintRegionRememberedSetInfo | |
26 * @key gc | |
27 * @bug 8014240 | |
28 * @summary Test output of G1PrintRegionRememberedSetInfo | |
29 * @library /testlibrary | |
30 * @build TestPrintRegionRememberedSetInfo | |
31 * @author thomas.schatzl@oracle.com | |
32 */ | |
33 | |
34 import com.oracle.java.testlibrary.*; | |
35 import java.lang.Thread; | |
36 import java.util.ArrayList; | |
37 import java.util.Arrays; | |
38 | |
39 class RunAndWaitForMarking { | |
40 public static void main(String[] args) { | |
41 System.gc(); | |
42 try { | |
43 Thread.sleep(200); | |
44 } catch (InterruptedException e) { | |
45 } | |
46 } | |
47 } | |
48 | |
49 public class TestPrintRegionRememberedSetInfo { | |
50 | |
51 public static String runTest(String arg) throws Exception { | |
52 ArrayList<String> finalargs = new ArrayList<String>(); | |
53 String[] defaultArgs = new String[] { | |
54 "-XX:+UseG1GC", | |
55 "-Xmx10m", | |
56 "-XX:+ExplicitGCInvokesConcurrent", | |
57 "-XX:+UnlockDiagnosticVMOptions", | |
58 "-XX:+G1PrintRegionLivenessInfo", | |
59 "-XX:G1HeapRegionSize=1M", | |
60 "-XX:InitiatingHeapOccupancyPercent=0", | |
61 }; | |
62 | |
63 finalargs.addAll(Arrays.asList(defaultArgs)); | |
64 finalargs.add(arg); | |
65 | |
66 finalargs.add(RunAndWaitForMarking.class.getName()); | |
67 | |
68 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( | |
69 finalargs.toArray(new String[0])); | |
70 OutputAnalyzer output = new OutputAnalyzer(pb.start()); | |
71 output.shouldHaveExitValue(0); | |
72 | |
73 String result = output.getStdout(); | |
74 return result; | |
75 } | |
76 | |
77 public static void main(String[] args) throws Exception { | |
78 String result; | |
79 | |
80 result = runTest("-XX:+G1PrintRegionLivenessInfo"); | |
81 // check that we got region statistics output | |
82 if (result.indexOf("PHASE") == -1) { | |
83 throw new RuntimeException("Unexpected output from -XX:+PrintRegionLivenessInfo found."); | |
84 } | |
85 | |
86 result = runTest("-XX:-G1PrintRegionLivenessInfo"); | |
87 if (result.indexOf("remset") != -1) { | |
88 throw new RuntimeException("Should find remembered set information in output."); | |
89 } | |
90 } | |
91 } | |
92 |