Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/hotspot/jtreg/runtime/CommandLine/IgnoreUnrecognizedVMOptions.java
40942 views
1
/*
2
* Copyright (c) 2015, 2020, 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
import jdk.test.lib.process.ProcessTools;
25
import jdk.test.lib.process.OutputAnalyzer;
26
import jdk.test.lib.Platform;
27
28
/*
29
* @test
30
* @bug 8129855
31
* @summary -XX:+IgnoreUnrecognizedVMOptions should work according to the spec from JDK-8129855
32
*
33
* @library /test/lib
34
* @modules java.base/jdk.internal.misc
35
* java.management
36
* @run driver IgnoreUnrecognizedVMOptions
37
*/
38
public class IgnoreUnrecognizedVMOptions {
39
40
private static void runJavaAndCheckExitValue(boolean shouldSucceed, String... args) throws Exception {
41
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(args);
42
OutputAnalyzer output = new OutputAnalyzer(pb.start());
43
if (shouldSucceed) {
44
output.shouldHaveExitValue(0);
45
} else {
46
output.shouldHaveExitValue(1);
47
}
48
}
49
50
public static void main(String[] args) throws Exception {
51
boolean product = !Platform.isDebugBuild();
52
53
/*
54
#1.1 wrong value and non-existing flag:
55
exists, invalid value does not exist
56
-XX:MinHeapFreeRatio=notnum -XX:THIS_FLAG_DOESNT_EXIST
57
-IgnoreUnrecognizedVMOptions ERR ERR
58
+IgnoreUnrecognizedVMOptions ERR OK
59
*/
60
runJavaAndCheckExitValue(false, "-XX:-IgnoreUnrecognizedVMOptions", "-XX:MinHeapFreeRatio=notnum", "-version");
61
runJavaAndCheckExitValue(false, "-XX:-IgnoreUnrecognizedVMOptions", "-XX:THIS_FLAG_DOESNT_EXIST", "-version");
62
runJavaAndCheckExitValue(false, "-XX:+IgnoreUnrecognizedVMOptions", "-XX:MinHeapFreeRatio=notnum", "-version");
63
runJavaAndCheckExitValue(true, "-XX:+IgnoreUnrecognizedVMOptions", "-XX:THIS_FLAG_DOESNT_EXIST", "-version");
64
65
/*
66
#1.2 normal flag with ranges:
67
exists, in range exists, out of range
68
-XX:StackRedPages=1 -XX:StackRedPages=0
69
-IgnoreUnrecognizedVMOptions OK ERR
70
+IgnoreUnrecognizedVMOptions OK ERR
71
*/
72
runJavaAndCheckExitValue(true, "-XX:-IgnoreUnrecognizedVMOptions", "-XX:StackRedPages=1", "-version");
73
runJavaAndCheckExitValue(false, "-XX:-IgnoreUnrecognizedVMOptions", "-XX:StackRedPages=0", "-version");
74
runJavaAndCheckExitValue(true, "-XX:+IgnoreUnrecognizedVMOptions", "-XX:StackRedPages=1", "-version");
75
runJavaAndCheckExitValue(false, "-XX:+IgnoreUnrecognizedVMOptions", "-XX:StackRedPages=0", "-version");
76
77
/*
78
#1.3 develop & notproduct flag on debug VM:
79
develop & !product_build notproduct & !product_build
80
-XX:+DeoptimizeALot -XX:+VerifyCodeCache
81
-IgnoreUnrecognizedVMOptions OK OK
82
+IgnoreUnrecognizedVMOptions OK OK
83
*/
84
if (!product) {
85
runJavaAndCheckExitValue(true, "-XX:-IgnoreUnrecognizedVMOptions", "-XX:+DeoptimizeALot", "-version");
86
runJavaAndCheckExitValue(true, "-XX:-IgnoreUnrecognizedVMOptions", "-XX:+VerifyCodeCache", "-version");
87
runJavaAndCheckExitValue(true, "-XX:+IgnoreUnrecognizedVMOptions", "-XX:+DeoptimizeALot", "-version");
88
runJavaAndCheckExitValue(true, "-XX:+IgnoreUnrecognizedVMOptions", "-XX:+VerifyCodeCache", "-version");
89
}
90
91
/*
92
#1.4 develop & notproduct flag on product VM:
93
develop & !product_build notproduct & product_build
94
-XX:+DeoptimizeALot -XX:+VerifyCodeCache
95
-IgnoreUnrecognizedVMOptions ERR ERR
96
+IgnoreUnrecognizedVMOptions OK OK
97
*/
98
if (product) {
99
runJavaAndCheckExitValue(false, "-XX:-IgnoreUnrecognizedVMOptions", "-XX:+DeoptimizeALot", "-version");
100
runJavaAndCheckExitValue(false, "-XX:-IgnoreUnrecognizedVMOptions", "-XX:+VerifyCodeCache", "-version");
101
runJavaAndCheckExitValue(true, "-XX:+IgnoreUnrecognizedVMOptions", "-XX:+DeoptimizeALot", "-version");
102
runJavaAndCheckExitValue(true, "-XX:+IgnoreUnrecognizedVMOptions", "-XX:+VerifyCodeCache", "-version");
103
}
104
105
106
/*
107
#1.5 malformed develop & notproduct flag on debug VM:
108
develop & !product_build notproduct & !product_build
109
-XX:DeoptimizeALot -XX:VerifyCodeCache
110
-IgnoreUnrecognizedVMOptions ERR ERR
111
+IgnoreUnrecognizedVMOptions ERR ERR
112
*/
113
if (!product) {
114
runJavaAndCheckExitValue(false, "-XX:-IgnoreUnrecognizedVMOptions", "-XX:DeoptimizeALot", "-version");
115
runJavaAndCheckExitValue(false, "-XX:-IgnoreUnrecognizedVMOptions", "-XX:VerifyCodeCache", "-version");
116
runJavaAndCheckExitValue(false, "-XX:+IgnoreUnrecognizedVMOptions", "-XX:DeoptimizeALot", "-version");
117
runJavaAndCheckExitValue(false, "-XX:+IgnoreUnrecognizedVMOptions", "-XX:VerifyCodeCache", "-version");
118
}
119
120
/*
121
#1.6 malformed develop & notproduct flag on product VM:
122
develop & !product_build notproduct & product_build
123
-XX:DeoptimizeALot -XX:VerifyCodeCache
124
-IgnoreUnrecognizedVMOptions ERR ERR
125
+IgnoreUnrecognizedVMOptions OK OK
126
*/
127
if (product) {
128
runJavaAndCheckExitValue(false, "-XX:-IgnoreUnrecognizedVMOptions", "-XX:DeoptimizeALot", "-version");
129
runJavaAndCheckExitValue(false, "-XX:-IgnoreUnrecognizedVMOptions", "-XX:VerifyCodeCache", "-version");
130
runJavaAndCheckExitValue(true, "-XX:+IgnoreUnrecognizedVMOptions", "-XX:DeoptimizeALot", "-version");
131
runJavaAndCheckExitValue(true, "-XX:+IgnoreUnrecognizedVMOptions", "-XX:VerifyCodeCache", "-version");
132
}
133
134
/*
135
#1.7 locked flag:
136
diagnostic & locked experimental & locked
137
-XX:-UnlockDiagnosticVMOptions -XX:-UnlockExperimentalVMOptions
138
-XX:+PrintInlining -XX:+AlwaysSafeConstructors
139
-IgnoreUnrecognizedVMOptions ERR ERR
140
+IgnoreUnrecognizedVMOptions ERR ERR
141
*/
142
runJavaAndCheckExitValue(false, "-XX:-IgnoreUnrecognizedVMOptions", "-XX:-UnlockDiagnosticVMOptions", "-XX:+PrintInlining", "-version");
143
runJavaAndCheckExitValue(false, "-XX:-IgnoreUnrecognizedVMOptions", "-XX:-UnlockExperimentalVMOptions", "-XX:+AlwaysSafeConstructors", "-version");
144
runJavaAndCheckExitValue(false, "-XX:+IgnoreUnrecognizedVMOptions", "-XX:-UnlockDiagnosticVMOptions", "-XX:+PrintInlining", "-version");
145
runJavaAndCheckExitValue(false, "-XX:+IgnoreUnrecognizedVMOptions", "-XX:-UnlockExperimentalVMOptions", "-XX:+AlwaysSafeConstructors", "-version");
146
147
/*
148
#1.8 malformed locked flag:
149
diagnostic & locked experimental & locked
150
-XX:-UnlockDiagnosticVMOptions -XX:-UnlockExperimentalVMOptions
151
-XX:PrintInlining -XX:AlwaysSafeConstructors
152
-IgnoreUnrecognizedVMOptions ERR ERR
153
+IgnoreUnrecognizedVMOptions ERR ERR
154
*/
155
runJavaAndCheckExitValue(false, "-XX:-IgnoreUnrecognizedVMOptions", "-XX:-UnlockDiagnosticVMOptions", "-XX:PrintInlining", "-version");
156
runJavaAndCheckExitValue(false, "-XX:-IgnoreUnrecognizedVMOptions", "-XX:-UnlockExperimentalVMOptions", "-XX:AlwaysSafeConstructors", "-version");
157
runJavaAndCheckExitValue(false, "-XX:+IgnoreUnrecognizedVMOptions", "-XX:-UnlockDiagnosticVMOptions", "-XX:PrintInlining", "-version");
158
runJavaAndCheckExitValue(false, "-XX:+IgnoreUnrecognizedVMOptions", "-XX:-UnlockExperimentalVMOptions", "-XX:AlwaysSafeConstructors", "-version");
159
160
/*
161
#1.9 malformed unlocked flag:
162
diagnostic & locked experimental & locked
163
-XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
164
-XX:PrintInlining -XX:AlwaysSafeConstructors
165
-IgnoreUnrecognizedVMOptions ERR ERR
166
+IgnoreUnrecognizedVMOptions ERR ERR
167
*/
168
runJavaAndCheckExitValue(false, "-XX:-IgnoreUnrecognizedVMOptions", "-XX:+UnlockDiagnosticVMOptions", "-XX:PrintInlining", "-version");
169
runJavaAndCheckExitValue(false, "-XX:-IgnoreUnrecognizedVMOptions", "-XX:+UnlockExperimentalVMOptions", "-XX:AlwaysSafeConstructors", "-version");
170
runJavaAndCheckExitValue(false, "-XX:+IgnoreUnrecognizedVMOptions", "-XX:+UnlockDiagnosticVMOptions", "-XX:PrintInlining", "-version");
171
runJavaAndCheckExitValue(false, "-XX:+IgnoreUnrecognizedVMOptions", "-XX:+UnlockExperimentalVMOptions", "-XX:AlwaysSafeConstructors", "-version");
172
}
173
}
174
175