test/testlibrary/com/oracle/java/testlibrary/TestDynamicVMOption.java

Thu, 20 Mar 2014 16:31:47 +0100

author
jwilhelm
date
Thu, 20 Mar 2014 16:31:47 +0100
changeset 6400
3b4e1b5c13a0
parent 0
f90c822e73f8
permissions
-rw-r--r--

8037510: CMM Testing: Min/MaxHeapFreeRatio flags should be manageable through the API
Summary: Added tests for Min/MaxHeapFreeRatio flags
Reviewed-by: jwilhelm, tschatzl
Contributed-by: andrey.x.zakharov@oracle.com

aoqi@0 1 /*
aoqi@0 2 * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
aoqi@0 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
aoqi@0 4 *
aoqi@0 5 * This code is free software; you can redistribute it and/or modify it
aoqi@0 6 * under the terms of the GNU General Public License version 2 only, as
aoqi@0 7 * published by the Free Software Foundation.
aoqi@0 8 *
aoqi@0 9 * This code is distributed in the hope that it will be useful, but WITHOUT
aoqi@0 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
aoqi@0 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
aoqi@0 12 * version 2 for more details (a copy is included in the LICENSE file that
aoqi@0 13 * accompanied this code).
aoqi@0 14 *
aoqi@0 15 * You should have received a copy of the GNU General Public License version
aoqi@0 16 * 2 along with this work; if not, write to the Free Software Foundation,
aoqi@0 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
aoqi@0 18 *
aoqi@0 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
aoqi@0 20 * or visit www.oracle.com if you need additional information or have any
aoqi@0 21 * questions.
aoqi@0 22 */
aoqi@0 23 package com.oracle.java.testlibrary;
aoqi@0 24
aoqi@0 25 /**
aoqi@0 26 * Simple class to check writeability, invalid and valid values for concrete VMOption
aoqi@0 27 */
aoqi@0 28 public class TestDynamicVMOption {
aoqi@0 29
aoqi@0 30 private final String name;
aoqi@0 31 private final int value;
aoqi@0 32
aoqi@0 33 /**
aoqi@0 34 * Constructor
aoqi@0 35 *
aoqi@0 36 * @param name of VM option to test
aoqi@0 37 */
aoqi@0 38 public TestDynamicVMOption(String name) {
aoqi@0 39 this.name = name;
aoqi@0 40 this.value = DynamicVMOptionChecker.getIntValue(name);
aoqi@0 41 System.out.println(this.name + " = " + this.value);
aoqi@0 42 }
aoqi@0 43
aoqi@0 44 /**
aoqi@0 45 * Checks that this value can accept valid percentage values and cannot accept invalid percentage values
aoqi@0 46 *
aoqi@0 47 * @throws RuntimeException
aoqi@0 48 */
aoqi@0 49 public void testPercentageValues() {
aoqi@0 50 checkInvalidValue(Integer.toString(Integer.MIN_VALUE));
aoqi@0 51 checkInvalidValue(Integer.toString(Integer.MAX_VALUE));
aoqi@0 52 checkInvalidValue("-10");
aoqi@0 53 checkInvalidValue("190");
aoqi@0 54 }
aoqi@0 55
aoqi@0 56 /**
aoqi@0 57 * Reads VM option from PlatformMXBean and parse it to integer value
aoqi@0 58 *
aoqi@0 59 * @return value
aoqi@0 60 */
aoqi@0 61 public int getIntValue() {
aoqi@0 62 return DynamicVMOptionChecker.getIntValue(this.name);
aoqi@0 63 }
aoqi@0 64
aoqi@0 65 /**
aoqi@0 66 * Sets VM option value
aoqi@0 67 *
aoqi@0 68 * @param value to set
aoqi@0 69 */
aoqi@0 70 public void setIntValue(int value) {
aoqi@0 71 DynamicVMOptionChecker.setIntValue(this.name, value);
aoqi@0 72 }
aoqi@0 73
aoqi@0 74 /**
aoqi@0 75 * Checks that this VM option is dynamically writable
aoqi@0 76 *
aoqi@0 77 * @throws RuntimeException if option if not writable
aoqi@0 78 * @return true
aoqi@0 79 */
aoqi@0 80 public boolean checkIsWritable() throws RuntimeException {
aoqi@0 81 return DynamicVMOptionChecker.checkIsWritable(this.name);
aoqi@0 82 }
aoqi@0 83
aoqi@0 84 /**
aoqi@0 85 * Checks that value for this VM option cannot be set
aoqi@0 86 *
aoqi@0 87 * @param value to check
aoqi@0 88 * @throws RuntimeException on error - when expected exception hasn't been thrown
aoqi@0 89 */
aoqi@0 90 public void checkInvalidValue(String value) {
aoqi@0 91 DynamicVMOptionChecker.checkInvalidValue(this.name, value);
aoqi@0 92 }
aoqi@0 93
aoqi@0 94 /**
aoqi@0 95 * Checks that value for this VM option can be set
aoqi@0 96 *
aoqi@0 97 * @param value to check
aoqi@0 98 * @throws RuntimeException on error - when value in VM is not equal to origin
aoqi@0 99 */
aoqi@0 100 public void checkValidValue(String value) {
aoqi@0 101 DynamicVMOptionChecker.checkValidValue(this.name, value);
aoqi@0 102 }
aoqi@0 103
aoqi@0 104 }

mercurial