1 /*
2 * Copyright (c) 2015, 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
26 * @summary Test VM Options with ranges
27 * @library /testlibrary /runtime/CommandLine/OptionsValidation/common
28 * @modules java.base/sun.misc
29 * java.management
30 * jdk.attach
31 * jdk.management/sun.tools.attach
32 * @run main/othervm/timeout=900 TestOptionsWithRanges
33 */
34
35 import java.util.ArrayList;
36 import java.util.List;
37 import java.util.Map;
38 import jdk.test.lib.Asserts;
39 import optionsvalidation.JVMOption;
40 import optionsvalidation.JVMOptionsUtils;
41
42 public class TestOptionsWithRanges {
43
44 private static Map<String, JVMOption> allOptionsAsMap;
45
46 private static void excludeTestMaxRange(String optionName) {
47 JVMOption option = allOptionsAsMap.get(optionName);
48
49 if (option != null) {
50 option.excludeTestMaxRange();
51 }
52 }
53
54 private static void excludeTestMinRange(String optionName) {
55 JVMOption option = allOptionsAsMap.get(optionName);
56
57 if (option != null) {
58 option.excludeTestMinRange();
65
66 private static void setAllowedExitCodes(String optionName, Integer... allowedExitCodes) {
67 JVMOption option = allOptionsAsMap.get(optionName);
68
69 if (option != null) {
70 option.setAllowedExitCodes(allowedExitCodes);
71 }
72 }
73
74 public static void main(String[] args) throws Exception {
75 int failedTests;
76 List<JVMOption> allOptions;
77
78 allOptionsAsMap = JVMOptionsUtils.getOptionsWithRangeAsMap();
79
80 /* Shared flags can cause JVM to exit with error code 2 */
81 setAllowedExitCodes("SharedReadWriteSize", 2);
82 setAllowedExitCodes("SharedReadOnlySize", 2);
83 setAllowedExitCodes("SharedMiscDataSize", 2);
84 setAllowedExitCodes("SharedMiscCodeSize", 2);
85
86 /*
87 * Remove CICompilerCount from testing because currently it can hang system
88 */
89 excludeTestMaxRange("CICompilerCount");
90
91 /*
92 * JDK-8136766
93 * Temporarily remove ThreadStackSize from testing because Windows can set it to 0
94 * (for default OS size) but other platforms insist it must be greater than 0
95 */
96 excludeTestRange("ThreadStackSize");
97
98 /*
99 * JDK-8143958
100 * Temporarily exclude testing of max range for Shared* flags
101 */
102 excludeTestMaxRange("SharedReadWriteSize");
103 excludeTestMaxRange("SharedReadOnlySize");
104 excludeTestMaxRange("SharedMiscDataSize");
|
1 /*
2 * Copyright (c) 2015, 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
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
26 * @summary Test VM Options with ranges
27 * @library /testlibrary /runtime/CommandLine/OptionsValidation/common
28 * @modules java.base/sun.misc
29 * java.management
30 * jdk.attach
31 * jdk.management/sun.tools.attach
32 * @run main/othervm/timeout=900 TestOptionsWithRanges
33 */
34
35 import java.util.ArrayList;
36 import java.util.List;
37 import java.util.Map;
38 import jdk.test.lib.Asserts;
39 import jdk.test.lib.Platform;
40 import optionsvalidation.JVMOption;
41 import optionsvalidation.JVMOptionsUtils;
42
43 public class TestOptionsWithRanges {
44
45 private static Map<String, JVMOption> allOptionsAsMap;
46
47 private static void excludeTestMaxRange(String optionName) {
48 JVMOption option = allOptionsAsMap.get(optionName);
49
50 if (option != null) {
51 option.excludeTestMaxRange();
52 }
53 }
54
55 private static void excludeTestMinRange(String optionName) {
56 JVMOption option = allOptionsAsMap.get(optionName);
57
58 if (option != null) {
59 option.excludeTestMinRange();
66
67 private static void setAllowedExitCodes(String optionName, Integer... allowedExitCodes) {
68 JVMOption option = allOptionsAsMap.get(optionName);
69
70 if (option != null) {
71 option.setAllowedExitCodes(allowedExitCodes);
72 }
73 }
74
75 public static void main(String[] args) throws Exception {
76 int failedTests;
77 List<JVMOption> allOptions;
78
79 allOptionsAsMap = JVMOptionsUtils.getOptionsWithRangeAsMap();
80
81 /* Shared flags can cause JVM to exit with error code 2 */
82 setAllowedExitCodes("SharedReadWriteSize", 2);
83 setAllowedExitCodes("SharedReadOnlySize", 2);
84 setAllowedExitCodes("SharedMiscDataSize", 2);
85 setAllowedExitCodes("SharedMiscCodeSize", 2);
86
87 /*
88 * JDK-8144578
89 * Temporarily remove testing of max range for ParGCArrayScanChunk because
90 * JVM can hang when ParGCArrayScanChunk=4294967296 and ParallelGC is used
91 */
92 excludeTestMaxRange("ParGCArrayScanChunk");
93
94 /*
95 * JDK-8145190
96 * Temporarily remove testing of max range for MinTLABSize on 32 bit platforms
97 * because it can cause overflow problem with CMS GC
98 */
99 if (Platform.is32bit()) {
100 excludeTestMaxRange("MinTLABSize");
101 }
102
103 /*
104 * JDK-8145192
105 * Temporarily remove testing of max range for MarkSweepAlwaysCompactCount
106 * on 64 bit platforms because it cause overflow for Parallel GC
107 */
108 if (Platform.is64bit()) {
109 excludeTestMaxRange("MarkSweepAlwaysCompactCount");
110 }
111
112 /*
113 * Remove CICompilerCount from testing because currently it can hang system
114 */
115 excludeTestMaxRange("CICompilerCount");
116
117 /*
118 * JDK-8136766
119 * Temporarily remove ThreadStackSize from testing because Windows can set it to 0
120 * (for default OS size) but other platforms insist it must be greater than 0
121 */
122 excludeTestRange("ThreadStackSize");
123
124 /*
125 * JDK-8143958
126 * Temporarily exclude testing of max range for Shared* flags
127 */
128 excludeTestMaxRange("SharedReadWriteSize");
129 excludeTestMaxRange("SharedReadOnlySize");
130 excludeTestMaxRange("SharedMiscDataSize");
|