< prev index next >

test/hotspot/jtreg/gc/ergonomics/TestDynamicNumberOfGCThreads.java

Print this page

36 
37 import jdk.test.lib.process.OutputAnalyzer;
38 import jdk.test.lib.process.ProcessTools;
39 import jtreg.SkippedException;
40 import jdk.test.whitebox.gc.GC;
41 
42 public class TestDynamicNumberOfGCThreads {
43   public static void main(String[] args) throws Exception {
44     boolean noneGCSupported = true;
45 
46     if (GC.G1.isSupported()) {
47       noneGCSupported = false;
48       testDynamicNumberOfGCThreads("UseG1GC");
49     }
50 
51     if (GC.Parallel.isSupported()) {
52       noneGCSupported = false;
53       testDynamicNumberOfGCThreads("UseParallelGC");
54     }
55 
56     if (GC.Shenandoah.isSupported()) {
57       noneGCSupported = false;
58       testDynamicNumberOfGCThreads("UseShenandoahGC");
59     }
60 
61     if (noneGCSupported) {
62       throw new SkippedException("Skipping test because none of G1/Parallel/Shenandoah is supported.");
63     }
64   }
65 
66   private static void verifyDynamicNumberOfGCThreads(OutputAnalyzer output) {
67     output.shouldHaveExitValue(0); // test should run succesfully
68     output.shouldContain("new_active_workers");
69   }
70 
71   private static void testDynamicNumberOfGCThreads(String gcFlag) throws Exception {
72     // UseDynamicNumberOfGCThreads enabled
73     String[] baseArgs = {"-XX:+UnlockExperimentalVMOptions", "-XX:+" + gcFlag, "-Xmx10M", "-XX:+UseDynamicNumberOfGCThreads", "-Xlog:gc+task=trace", GCTest.class.getName()};
74 
75     // Base test with gc and +UseDynamicNumberOfGCThreads:
76     ProcessBuilder pb_enabled = ProcessTools.createLimitedTestJavaProcessBuilder(baseArgs);
77     verifyDynamicNumberOfGCThreads(new OutputAnalyzer(pb_enabled.start()));
78 
79     // Turn on parallel reference processing
80     String[] parRefProcArg = {"-XX:+ParallelRefProcEnabled", "-XX:-ShowMessageBoxOnError"};
81     String[] parRefArgs = new String[baseArgs.length + parRefProcArg.length];
82     System.arraycopy(parRefProcArg, 0, parRefArgs, 0,                parRefProcArg.length);

36 
37 import jdk.test.lib.process.OutputAnalyzer;
38 import jdk.test.lib.process.ProcessTools;
39 import jtreg.SkippedException;
40 import jdk.test.whitebox.gc.GC;
41 
42 public class TestDynamicNumberOfGCThreads {
43   public static void main(String[] args) throws Exception {
44     boolean noneGCSupported = true;
45 
46     if (GC.G1.isSupported()) {
47       noneGCSupported = false;
48       testDynamicNumberOfGCThreads("UseG1GC");
49     }
50 
51     if (GC.Parallel.isSupported()) {
52       noneGCSupported = false;
53       testDynamicNumberOfGCThreads("UseParallelGC");
54     }
55 





56     if (noneGCSupported) {
57       throw new SkippedException("Skipping test because none of G1/Parallel is supported.");
58     }
59   }
60 
61   private static void verifyDynamicNumberOfGCThreads(OutputAnalyzer output) {
62     output.shouldHaveExitValue(0); // test should run succesfully
63     output.shouldContain("new_active_workers");
64   }
65 
66   private static void testDynamicNumberOfGCThreads(String gcFlag) throws Exception {
67     // UseDynamicNumberOfGCThreads enabled
68     String[] baseArgs = {"-XX:+UnlockExperimentalVMOptions", "-XX:+" + gcFlag, "-Xmx10M", "-XX:+UseDynamicNumberOfGCThreads", "-Xlog:gc+task=trace", GCTest.class.getName()};
69 
70     // Base test with gc and +UseDynamicNumberOfGCThreads:
71     ProcessBuilder pb_enabled = ProcessTools.createLimitedTestJavaProcessBuilder(baseArgs);
72     verifyDynamicNumberOfGCThreads(new OutputAnalyzer(pb_enabled.start()));
73 
74     // Turn on parallel reference processing
75     String[] parRefProcArg = {"-XX:+ParallelRefProcEnabled", "-XX:-ShowMessageBoxOnError"};
76     String[] parRefArgs = new String[baseArgs.length + parRefProcArg.length];
77     System.arraycopy(parRefProcArg, 0, parRefArgs, 0,                parRefProcArg.length);
< prev index next >