--- a/test/hotspot/jtreg/gc/shenandoah/oom/TestClassLoaderLeak.java Thu Oct 17 20:27:44 2019 +0100
+++ b/test/hotspot/jtreg/gc/shenandoah/oom/TestClassLoaderLeak.java Thu Oct 17 20:53:35 2019 +0100
@@ -124,30 +124,31 @@
return;
}
- String[] heuristics = new String[] {
- "adaptive",
- "compact",
- "static",
- "traversal",
- "aggressive",
- "passive",
+ String[][][] modeHeuristics = new String[][][] {
+ {{"normal"}, {"adaptive", "compact", "static", "aggressive"}},
+ {{"traversal"}, {"adaptive", "aggressive"}},
+ {{"passive"}, {"passive"}}
};
- for (String h : heuristics) {
- // Forceful enabling should work
- passWith("-XX:ShenandoahGCHeuristics=" + h, "-XX:+ClassUnloading");
- passWith("-XX:ShenandoahGCHeuristics=" + h, "-XX:+ClassUnloadingWithConcurrentMark");
+ for (String[][] mh : modeHeuristics) {
+ String mode = mh[0][0];
+ String[] heuristics = mh[1];
+ for (String h : heuristics) {
+ // Forceful enabling should work
+ passWith("-XX:ShenandoahGCMode=" + mode, "-XX:ShenandoahGCHeuristics=" + h, "-XX:+ClassUnloading");
+ passWith("-XX:ShenandoahGCMode=" + mode, "-XX:ShenandoahGCHeuristics=" + h, "-XX:+ClassUnloadingWithConcurrentMark");
- // Even when concurrent unloading is disabled, Full GC has to recover
- passWith("-XX:ShenandoahGCHeuristics=" + h, "-XX:+ClassUnloading", "-XX:-ClassUnloadingWithConcurrentMark");
- passWith("-XX:ShenandoahGCHeuristics=" + h, "-XX:+ClassUnloading", "-XX:-ClassUnloadingWithConcurrentMark", "-XX:ShenandoahUnloadClassesFrequency=0");
- passWith("-XX:ShenandoahGCHeuristics=" + h, "-XX:+ClassUnloading", "-XX:+ClassUnloadingWithConcurrentMark", "-XX:ShenandoahUnloadClassesFrequency=0");
+ // Even when concurrent unloading is disabled, Full GC has to recover
+ passWith("-XX:ShenandoahGCMode=" + mode, "-XX:ShenandoahGCHeuristics=" + h, "-XX:+ClassUnloading", "-XX:-ClassUnloadingWithConcurrentMark");
+ passWith("-XX:ShenandoahGCMode=" + mode, "-XX:ShenandoahGCHeuristics=" + h, "-XX:+ClassUnloading", "-XX:-ClassUnloadingWithConcurrentMark", "-XX:ShenandoahUnloadClassesFrequency=0");
+ passWith("-XX:ShenandoahGCMode=" + mode, "-XX:ShenandoahGCHeuristics=" + h, "-XX:+ClassUnloading", "-XX:+ClassUnloadingWithConcurrentMark", "-XX:ShenandoahUnloadClassesFrequency=0");
- // Should OOME when unloading forcefully disabled, even if local flags try to enable it back
- failWith("-XX:ShenandoahGCHeuristics=" + h, "-XX:-ClassUnloading");
- failWith("-XX:ShenandoahGCHeuristics=" + h, "-XX:-ClassUnloading", "-XX:+ClassUnloadingWithConcurrentMark");
- failWith("-XX:ShenandoahGCHeuristics=" + h, "-XX:-ClassUnloading", "-XX:+ClassUnloadingWithConcurrentMark", "-XX:ShenandoahUnloadClassesFrequency=1");
- failWith("-XX:ShenandoahGCHeuristics=" + h, "-XX:-ClassUnloading", "-XX:-ClassUnloadingWithConcurrentMark", "-XX:ShenandoahUnloadClassesFrequency=1");
+ // Should OOME when unloading forcefully disabled, even if local flags try to enable it back
+ failWith("-XX:ShenandoahGCMode=" + mode, "-XX:ShenandoahGCHeuristics=" + h, "-XX:-ClassUnloading");
+ failWith("-XX:ShenandoahGCMode=" + mode, "-XX:ShenandoahGCHeuristics=" + h, "-XX:-ClassUnloading", "-XX:+ClassUnloadingWithConcurrentMark");
+ failWith("-XX:ShenandoahGCMode=" + mode, "-XX:ShenandoahGCHeuristics=" + h, "-XX:-ClassUnloading", "-XX:+ClassUnloadingWithConcurrentMark", "-XX:ShenandoahUnloadClassesFrequency=1");
+ failWith("-XX:ShenandoahGCMode=" + mode, "-XX:ShenandoahGCHeuristics=" + h, "-XX:-ClassUnloading", "-XX:-ClassUnloadingWithConcurrentMark", "-XX:ShenandoahUnloadClassesFrequency=1");
+ }
}
}
}