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=780 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 }
92 /*
93 * JDK-8142874
94 * Temporarily exclude Shared* flagse as they will exit the VM with exit code 2 and
95 * "The shared miscellaneous data space is not large enough to preload requested classes."
96 * message at max values.
97 */
98 excludeTestRange("SharedReadWriteSize");
99 excludeTestRange("SharedReadOnlySize");
100 excludeTestRange("SharedMiscDataSize");
101 excludeTestRange("SharedMiscCodeSize");
102
103 /*
104 * Exclude MallocMaxTestWords as it is expected to exit VM at small values (>=0)
105 */
106 excludeTestMinRange("MallocMaxTestWords");
107
108 /*
109 * Exclude below options as their maximum value would consume too much memory
110 * and would affect other tests that run in parallel.
111 */
112 excludeTestMaxRange("G1ConcRefinementThreads");
113 excludeTestMaxRange("G1RSetRegionEntries");
114 excludeTestMaxRange("G1RSetSparseRegionEntries");
115 excludeTestMaxRange("G1UpdateBufferSize");
116 excludeTestMaxRange("InitialBootClassLoaderMetaspaceSize");
117
118 /*
119 * Remove parameters controlling the code cache. As these
120 * parameters have implications on the physical memory
121 * reserved by the VM, setting them to large values may hang
122 * the system and/or may cause concurrently executed tests to
123 * fail. These parameters are rigorously checked when the code
124 * cache is initialized (see
125 * hotspot/src/shared/vm/code/codeCache.cpp), therefore
126 * omitting testing for them does not pose a problem.
127 */
128 excludeTestMaxRange("InitialCodeCacheSize");
129 excludeTestMaxRange("CodeCacheMinimumUseSpace");
130 excludeTestMaxRange("ReservedCodeCacheSize");
131 excludeTestMaxRange("NonProfiledCodeHeapSize");
132 excludeTestMaxRange("ProfiledCodeHeapSize");
133 excludeTestMaxRange("NonNMethodCodeHeapSize");
134 excludeTestMaxRange("CodeCacheExpansionSize");
135
136 allOptions = new ArrayList<>(allOptionsAsMap.values());
|
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 }
92 /*
93 * JDK-8142874
94 * Temporarily exclude Shared* flagse as they will exit the VM with exit code 2 and
95 * "The shared miscellaneous data space is not large enough to preload requested classes."
96 * message at max values.
97 */
98 excludeTestRange("SharedReadWriteSize");
99 excludeTestRange("SharedReadOnlySize");
100 excludeTestRange("SharedMiscDataSize");
101 excludeTestRange("SharedMiscCodeSize");
102
103 /*
104 * Exclude MallocMaxTestWords as it is expected to exit VM at small values (>=0)
105 */
106 excludeTestMinRange("MallocMaxTestWords");
107
108 /*
109 * Exclude below options as their maximum value would consume too much memory
110 * and would affect other tests that run in parallel.
111 */
112 excludeTestMaxRange("ConcGCThreads");
113 excludeTestMaxRange("G1ConcRefinementThreads");
114 excludeTestMaxRange("G1RSetRegionEntries");
115 excludeTestMaxRange("G1RSetSparseRegionEntries");
116 excludeTestMaxRange("G1UpdateBufferSize");
117 excludeTestMaxRange("InitialBootClassLoaderMetaspaceSize");
118 excludeTestMaxRange("InitialHeapSize");
119 excludeTestMaxRange("MaxHeapSize");
120 excludeTestMaxRange("MaxRAM");
121 excludeTestMaxRange("NewSize");
122 excludeTestMaxRange("OldSize");
123 excludeTestMaxRange("ParallelGCThreads");
124
125 excludeTestMaxRange("VMThreadStackSize");
126
127 /*
128 * Remove parameters controlling the code cache. As these
129 * parameters have implications on the physical memory
130 * reserved by the VM, setting them to large values may hang
131 * the system and/or may cause concurrently executed tests to
132 * fail. These parameters are rigorously checked when the code
133 * cache is initialized (see
134 * hotspot/src/shared/vm/code/codeCache.cpp), therefore
135 * omitting testing for them does not pose a problem.
136 */
137 excludeTestMaxRange("InitialCodeCacheSize");
138 excludeTestMaxRange("CodeCacheMinimumUseSpace");
139 excludeTestMaxRange("ReservedCodeCacheSize");
140 excludeTestMaxRange("NonProfiledCodeHeapSize");
141 excludeTestMaxRange("ProfiledCodeHeapSize");
142 excludeTestMaxRange("NonNMethodCodeHeapSize");
143 excludeTestMaxRange("CodeCacheExpansionSize");
144
145 allOptions = new ArrayList<>(allOptionsAsMap.values());
|