< prev index next >

test/gc/arguments/TestMaxHeapSizeTools.java

Print this page




  89     checkErgonomics(new String[] { gcflag, "-Xmx" + maxHeapSize, "-Xms" + largeValue, "-XX:InitialHeapSize=0" }, values, largeValue, -1);
  90   }
  91 
  92   private static long align_up(long value, long alignment) {
  93     long alignmentMinusOne = alignment - 1;
  94     return (value + alignmentMinusOne) & ~alignmentMinusOne;
  95   }
  96 
  97   private static void getNewOldSize(String gcflag, long[] values) throws Exception {
  98     ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(gcflag,
  99       "-XX:+PrintFlagsFinal", "-version");
 100     OutputAnalyzer output = new OutputAnalyzer(pb.start());
 101     output.shouldHaveExitValue(0);
 102 
 103     String stdout = output.getStdout();
 104     values[0] = getFlagValue(" NewSize", stdout);
 105     values[1] = getFlagValue(" OldSize", stdout);
 106   }
 107 
 108   public static void checkGenMaxHeapErgo(String gcflag) throws Exception {
 109     TestMaxHeapSizeTools.checkGenMaxHeapSize(gcflag, 3);
 110     TestMaxHeapSizeTools.checkGenMaxHeapSize(gcflag, 4);
 111     TestMaxHeapSizeTools.checkGenMaxHeapSize(gcflag, 5);
 112   }
 113 
 114   private static void checkInvalidMinInitialHeapCombinations(String gcflag) throws Exception {
 115     expectError(new String[] { gcflag, "-XX:InitialHeapSize=1023K", "-version" });
 116     expectError(new String[] { gcflag, "-Xms64M", "-XX:InitialHeapSize=32M", "-version" });
 117   }
 118 
 119   private static void checkValidMinInitialHeapCombinations(String gcflag) throws Exception {
 120     expectValid(new String[] { gcflag, "-XX:InitialHeapSize=1024K", "-version" });
 121     expectValid(new String[] { gcflag, "-XX:InitialHeapSize=8M", "-Xms4M", "-version" });
 122     expectValid(new String[] { gcflag, "-Xms4M", "-XX:InitialHeapSize=8M", "-version" });
 123     expectValid(new String[] { gcflag, "-XX:InitialHeapSize=8M", "-Xms8M", "-version" });
 124     // the following is not an error as -Xms sets both minimal and initial heap size
 125     expectValid(new String[] { gcflag, "-XX:InitialHeapSize=4M", "-Xms8M", "-version" });
 126   }
 127 
 128   private static void checkInvalidInitialMaxHeapCombinations(String gcflag) throws Exception {
 129     expectError(new String[] { gcflag, "-XX:MaxHeapSize=2047K", "-version" });
 130     expectError(new String[] { gcflag, "-XX:MaxHeapSize=4M", "-XX:InitialHeapSize=8M", "-version" });
 131     expectError(new String[] { gcflag, "-XX:InitialHeapSize=8M", "-XX:MaxHeapSize=4M", "-version" });
 132   }
 133 
 134   private static void checkValidInitialMaxHeapCombinations(String gcflag) throws Exception {
 135     expectValid(new String[] { gcflag, "-XX:MaxHeapSize=2048K", "-version" });
 136     expectValid(new String[] { gcflag, "-XX:InitialHeapSize=4M", "-XX:MaxHeapSize=8M", "-version" });
 137     expectValid(new String[] { gcflag, "-XX:MaxHeapSize=8M", "-XX:InitialHeapSize=4M", "-version" });
 138     expectValid(new String[] { gcflag, "-XX:MaxHeapSize=4M", "-XX:InitialHeapSize=4M", "-version" });
 139     // a value of "0" for initial heap size means auto-detect
 140     expectValid(new String[] { gcflag, "-XX:MaxHeapSize=4M", "-XX:InitialHeapSize=0M", "-version" });
 141   }
 142 
 143   private static long valueAfter(String source, String match) {
 144     int start = source.indexOf(match) + match.length();
 145     String tail = source.substring(start).split(" ")[0];
 146     return Long.parseLong(tail);
 147   }
 148 
 149   /**
 150    * Executes a new VM process with the given class and parameters.
 151    * @param vmargs Arguments to the VM to run
 152    * @param classname Name of the class to run
 153    * @param arguments Arguments to the class
 154    * @param useTestDotJavaDotOpts Use test.java.opts as part of the VM argument string
 155    * @return The OutputAnalyzer with the results for the invocation.




  89     checkErgonomics(new String[] { gcflag, "-Xmx" + maxHeapSize, "-Xms" + largeValue, "-XX:InitialHeapSize=0" }, values, largeValue, -1);
  90   }
  91 
  92   private static long align_up(long value, long alignment) {
  93     long alignmentMinusOne = alignment - 1;
  94     return (value + alignmentMinusOne) & ~alignmentMinusOne;
  95   }
  96 
  97   private static void getNewOldSize(String gcflag, long[] values) throws Exception {
  98     ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(gcflag,
  99       "-XX:+PrintFlagsFinal", "-version");
 100     OutputAnalyzer output = new OutputAnalyzer(pb.start());
 101     output.shouldHaveExitValue(0);
 102 
 103     String stdout = output.getStdout();
 104     values[0] = getFlagValue(" NewSize", stdout);
 105     values[1] = getFlagValue(" OldSize", stdout);
 106   }
 107 
 108   public static void checkGenMaxHeapErgo(String gcflag) throws Exception {

 109     TestMaxHeapSizeTools.checkGenMaxHeapSize(gcflag, 4);
 110     TestMaxHeapSizeTools.checkGenMaxHeapSize(gcflag, 5);
 111   }
 112 
 113   private static void checkInvalidMinInitialHeapCombinations(String gcflag) throws Exception {
 114     expectError(new String[] { gcflag, "-XX:InitialHeapSize=1023K", "-version" });
 115     expectError(new String[] { gcflag, "-Xms64M", "-XX:InitialHeapSize=32M", "-version" });
 116   }
 117 
 118   private static void checkValidMinInitialHeapCombinations(String gcflag) throws Exception {
 119     expectValid(new String[] { gcflag, "-XX:InitialHeapSize=1024K", "-version" });
 120     expectValid(new String[] { gcflag, "-XX:InitialHeapSize=8M", "-Xms4M", "-version" });
 121     expectValid(new String[] { gcflag, "-Xms4M", "-XX:InitialHeapSize=8M", "-version" });
 122     expectValid(new String[] { gcflag, "-XX:InitialHeapSize=8M", "-Xms8M", "-version" });
 123     // the following is not an error as -Xms sets both minimal and initial heap size
 124     expectValid(new String[] { gcflag, "-XX:InitialHeapSize=4M", "-Xms8M", "-version" });
 125   }
 126 
 127   private static void checkInvalidInitialMaxHeapCombinations(String gcflag) throws Exception {
 128     expectError(new String[] { gcflag, "-XX:MaxHeapSize=2047K", "-version" });
 129     expectError(new String[] { gcflag, "-XX:MaxHeapSize=4M", "-XX:InitialHeapSize=8M", "-version" });
 130     expectError(new String[] { gcflag, "-XX:InitialHeapSize=8M", "-XX:MaxHeapSize=4M", "-version" });
 131   }
 132 
 133   private static void checkValidInitialMaxHeapCombinations(String gcflag) throws Exception {

 134     expectValid(new String[] { gcflag, "-XX:InitialHeapSize=4M", "-XX:MaxHeapSize=8M", "-version" });
 135     expectValid(new String[] { gcflag, "-XX:MaxHeapSize=8M", "-XX:InitialHeapSize=4M", "-version" });
 136     expectValid(new String[] { gcflag, "-XX:MaxHeapSize=4M", "-XX:InitialHeapSize=4M", "-version" });
 137     // a value of "0" for initial heap size means auto-detect
 138     expectValid(new String[] { gcflag, "-XX:MaxHeapSize=4M", "-XX:InitialHeapSize=0M", "-version" });
 139   }
 140 
 141   private static long valueAfter(String source, String match) {
 142     int start = source.indexOf(match) + match.length();
 143     String tail = source.substring(start).split(" ")[0];
 144     return Long.parseLong(tail);
 145   }
 146 
 147   /**
 148    * Executes a new VM process with the given class and parameters.
 149    * @param vmargs Arguments to the VM to run
 150    * @param classname Name of the class to run
 151    * @param arguments Arguments to the class
 152    * @param useTestDotJavaDotOpts Use test.java.opts as part of the VM argument string
 153    * @return The OutputAnalyzer with the results for the invocation.


< prev index next >