test/compiler/rtm/cli/TestUseRTMLockingOptionOnUnsupportedCPU.java

Mon, 11 Aug 2014 19:19:47 +0400

author
fzhinkin
date
Mon, 11 Aug 2014 19:19:47 +0400
changeset 6999
cabe05c85665
parent 0
f90c822e73f8
permissions
-rw-r--r--

8054805: Update CLI tests on RTM options to reflect changes in JDK-8054376
Reviewed-by: kvn

     1 /*
     2  * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     8  *
     9  * This code is distributed in the hope that it will be useful, but WITHOUT
    10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    12  * version 2 for more details (a copy is included in the LICENSE file that
    13  * accompanied this code).
    14  *
    15  * You should have received a copy of the GNU General Public License version
    16  * 2 along with this work; if not, write to the Free Software Foundation,
    17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    18  *
    19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    20  * or visit www.oracle.com if you need additional information or have any
    21  * questions.
    22  *
    23  */
    25 /**
    26  * @test
    27  * @bug 8031320
    28  * @summary Verify UseRTMLocking option processing on CPU without
    29  *          rtm support.
    30  * @library /testlibrary /testlibrary/whitebox /compiler/testlibrary
    31  * @build TestUseRTMLockingOptionOnUnsupportedCPU
    32  * @run main ClassFileInstaller sun.hotspot.WhiteBox
    33  * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions
    34  *                   -XX:+WhiteBoxAPI TestUseRTMLockingOptionOnUnsupportedCPU
    35  */
    37 import com.oracle.java.testlibrary.*;
    38 import com.oracle.java.testlibrary.cli.*;
    39 import com.oracle.java.testlibrary.cli.predicate.AndPredicate;
    40 import com.oracle.java.testlibrary.cli.predicate.NotPredicate;
    41 import rtm.predicate.SupportedCPU;
    42 import rtm.predicate.SupportedVM;
    44 public class TestUseRTMLockingOptionOnUnsupportedCPU
    45         extends CommandLineOptionTest {
    46     private static final String DEFAULT_VALUE = "false";
    48     private TestUseRTMLockingOptionOnUnsupportedCPU() {
    49         super(new AndPredicate(new NotPredicate(new SupportedCPU()),
    50                 new SupportedVM()));
    51     }
    53     @Override
    54     public void runTestCases() throws Throwable {
    55         String unrecongnizedOption
    56                 = CommandLineOptionTest.getUnrecognizedOptionErrorMessage(
    57                 "UseRTMLocking");
    58         String errorMessage = RTMGenericCommandLineOptionTest.RTM_INSTR_ERROR;
    60         if (Platform.isX86() || Platform.isX64()) {
    61             // verify that we get an error when use +UseRTMLocking
    62             // on unsupported CPU
    63             CommandLineOptionTest.verifySameJVMStartup(
    64                     new String[] { errorMessage },
    65                     new String[] { unrecongnizedOption },
    66                     ExitCode.FAIL, "-XX:+UseRTMLocking");
    67             // verify that we can pass -UseRTMLocking without
    68             // getting any error messages
    69             CommandLineOptionTest.verifySameJVMStartup(
    70                     null,
    71                     new String[]{
    72                             errorMessage,
    73                             unrecongnizedOption
    74                     }, ExitCode.OK, "-XX:-UseRTMLocking");
    76             // verify that UseRTMLocking is false by default
    77             CommandLineOptionTest.verifyOptionValueForSameVM("UseRTMLocking",
    78                     TestUseRTMLockingOptionOnUnsupportedCPU.DEFAULT_VALUE);
    79         } else {
    80             // verify that on non-x86 CPUs RTMLocking could not be used
    81             CommandLineOptionTest.verifySameJVMStartup(
    82                     new String[] { unrecongnizedOption },
    83                     null, ExitCode.FAIL, "-XX:+UseRTMLocking");
    85             CommandLineOptionTest.verifySameJVMStartup(
    86                     new String[] { unrecongnizedOption },
    87                     null, ExitCode.FAIL, "-XX:-UseRTMLocking");
    88         }
    89     }
    91     public static void main(String args[]) throws Throwable {
    92         new TestUseRTMLockingOptionOnUnsupportedCPU().test();
    93     }
    94 }

mercurial