blob: f3eb5d225c1d8b9a6f60de06e89573e2e8782c90 [file] [log] [blame]
Rachel Protacio02d268d2016-04-07 13:11:15 -04001/*
2 * Copyright (c) 2016, 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
Stanislav Smirnovc1332972016-10-17 18:54:12 -040011 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
Rachel Protacio02d268d2016-04-07 13:11:15 -040012 * 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
26 * @bug 8149991
27 * @requires (sun.arch.data.model == "64")
28 * @summary -Xlog:gc+heap+coops=info should have output from the code
Christian Tornqvistad85e182016-08-19 10:06:30 -040029 * @library /test/lib
Daniel D. Daughertyf6e4fcc2016-04-14 17:42:29 -070030 * @modules java.base/jdk.internal.misc
Rachel Protacio02d268d2016-04-07 13:11:15 -040031 * java.management
Rachel Protacio02d268d2016-04-07 13:11:15 -040032 * @run driver CompressedOopsTest
33 */
34
Christian Tornqvistad85e182016-08-19 10:06:30 -040035import jdk.test.lib.process.OutputAnalyzer;
Rachel Protacio02d268d2016-04-07 13:11:15 -040036import jdk.test.lib.Platform;
Christian Tornqvistad85e182016-08-19 10:06:30 -040037import jdk.test.lib.process.ProcessTools;
Rachel Protacio02d268d2016-04-07 13:11:15 -040038
39public class CompressedOopsTest {
40 static void analyzeOutputOn(ProcessBuilder pb) throws Exception {
41 OutputAnalyzer output = new OutputAnalyzer(pb.start());
42 output.shouldContain("[gc,heap,coops] Heap address");
43 output.shouldHaveExitValue(0);
44 }
45
46 static void analyzeOutputOff(ProcessBuilder pb) throws Exception {
47 OutputAnalyzer output = new OutputAnalyzer(pb.start());
48 output.shouldNotContain("[gc,heap,coops]");
49 output.shouldHaveExitValue(0);
50 }
51
52 public static void main(String[] args) throws Exception {
53 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UseCompressedOops",
54 "-Xlog:gc+heap+coops=info",
55 InnerClass.class.getName());
56 analyzeOutputOn(pb);
57
58 pb = ProcessTools.createJavaProcessBuilder("-XX:+UseCompressedOops",
59 "-XX:+PrintCompressedOopsMode",
60 InnerClass.class.getName());
61 analyzeOutputOn(pb);
62
63 pb = ProcessTools.createJavaProcessBuilder("-XX:+UseCompressedOops",
64 "-XX:+PrintCompressedOopsMode",
65 "-Xlog:gc+heap+coops=off",
66 InnerClass.class.getName());
67 analyzeOutputOff(pb);
68
69 pb = ProcessTools.createJavaProcessBuilder("-XX:+UseCompressedOops",
70 "-Xlog:gc+heap+coops=info",
71 "-XX:-PrintCompressedOopsMode",
72 InnerClass.class.getName());
73 analyzeOutputOff(pb);
74 }
75
76 public static class InnerClass {
77 public static void main(String[] args) throws Exception {
78 System.out.println("Compressed Oops (gc+heap+coops) test");
79 }
80 }
81}