< prev index next >

test/gc/ergonomics/TestDynamicNumberOfGCThreads.java

Print this page

        

*** 30,59 **** * @library /testlibrary */ import com.oracle.java.testlibrary.ProcessTools; import com.oracle.java.testlibrary.OutputAnalyzer; public class TestDynamicNumberOfGCThreads { public static void main(String[] args) throws Exception { ! testDynamicNumberOfGCThreads("UseConcMarkSweepGC"); ! testDynamicNumberOfGCThreads("UseG1GC"); ! testDynamicNumberOfGCThreads("UseParallelGC"); } private static void verifyDynamicNumberOfGCThreads(OutputAnalyzer output) { output.shouldContain("new_active_workers"); - output.shouldHaveExitValue(0); } ! private static void testDynamicNumberOfGCThreads(String gcFlag) throws Exception { // UseDynamicNumberOfGCThreads and TraceDynamicGCThreads enabled ! ProcessBuilder pb_enabled = ! ProcessTools.createJavaProcessBuilder("-XX:+" + gcFlag, "-Xmx10M", "-XX:+PrintGCDetails", "-XX:+UseDynamicNumberOfGCThreads", "-XX:+TraceDynamicGCThreads", GCTest.class.getName()); verifyDynamicNumberOfGCThreads(new OutputAnalyzer(pb_enabled.start())); } static class GCTest { private static byte[] garbage; --- 30,75 ---- * @library /testlibrary */ import com.oracle.java.testlibrary.ProcessTools; import com.oracle.java.testlibrary.OutputAnalyzer; + import java.util.ArrayList; + import java.util.Arrays; + import java.util.Collections; public class TestDynamicNumberOfGCThreads { public static void main(String[] args) throws Exception { ! testDynamicNumberOfGCThreads("UseConcMarkSweepGC", true); ! testDynamicNumberOfGCThreads("UseConcMarkSweepGC", false); ! testDynamicNumberOfGCThreads("UseG1GC", true); ! testDynamicNumberOfGCThreads("UseG1GC", false); ! testDynamicNumberOfGCThreads("UseParallelGC", true); ! testDynamicNumberOfGCThreads("UseParallelGC", false); } private static void verifyDynamicNumberOfGCThreads(OutputAnalyzer output) { + output.shouldHaveExitValue(0); // test should run succesfully output.shouldContain("new_active_workers"); } ! private static void testDynamicNumberOfGCThreads(String gcFlag, boolean emulate_uniprocessor) throws Exception { // UseDynamicNumberOfGCThreads and TraceDynamicGCThreads enabled ! String[] defaults = {"-XX:+" + gcFlag, "-Xmx10M", "-XX:+PrintGCDetails", "-XX:+UseDynamicNumberOfGCThreads", "-XX:+TraceDynamicGCThreads", GCTest.class.getName()}; ! ArrayList<String> args = new ArrayList(); ! Collections.addAll(args, defaults); ! Arrays.asList(defaults); ! // Ensure it works on uniprocessors or if user specifies -XX:ParallelGCThread=1. ! if (emulate_uniprocessor) { ! args.add(0, "-XX:+ForceDynamicNumberOfGCThreads"); ! args.add(0, "-XX:ParallelGCThreads=1"); ! } ! String[] finalArgs = new String[args.size()]; ! finalArgs = args.toArray(finalArgs); ! ProcessBuilder pb_enabled = ProcessTools.createJavaProcessBuilder(finalArgs); verifyDynamicNumberOfGCThreads(new OutputAnalyzer(pb_enabled.start())); } static class GCTest { private static byte[] garbage;
< prev index next >