test/hotspot/jtreg/runtime/cds/appcds/redefineClass/RedefineBasicTest.java
changeset 57567 b000362a89a0
parent 54196 6146ab937899
child 57705 7cf02b2c1455
equal deleted inserted replaced
57566:ad84ae073248 57567:b000362a89a0
       
     1 /*
       
     2  * Copyright (c) 2016, 2019, 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  */
       
    24 
       
    25 /*
       
    26  * @test
       
    27  * @summary Run /serviceability/jvmti/RedefineClasses/RedefineRunningMethods in AppCDS mode to
       
    28  *          make sure class redefinition works with CDS.
       
    29  * @requires vm.cds
       
    30  * @library /test/lib /test/hotspot/jtreg/serviceability/jvmti/RedefineClasses /test/hotspot/jtreg/runtime/cds/appcds
       
    31  * @modules java.compiler
       
    32  *          java.instrument
       
    33  *          jdk.jartool/sun.tools.jar
       
    34  *          java.base/jdk.internal.misc
       
    35  *          java.management
       
    36  * @run driver RedefineClassHelper
       
    37  * @build sun.hotspot.WhiteBox RedefineBasic
       
    38  * @run driver RedefineBasicTest
       
    39  */
       
    40 
       
    41 import jdk.test.lib.process.OutputAnalyzer;
       
    42 
       
    43 public class RedefineBasicTest {
       
    44     public static String sharedClasses[] = {
       
    45         "RedefineBasic",
       
    46         "RedefineBasic_B",
       
    47         "RedefineBasic$SubclassOfB",
       
    48         "RedefineBasic$Subclass2OfB",
       
    49         "RedefineClassHelper",
       
    50         "jdk/test/lib/compiler/InMemoryJavaCompiler",
       
    51         "jdk/test/lib/compiler/InMemoryJavaCompiler$FileManagerWrapper",
       
    52         "jdk/test/lib/compiler/InMemoryJavaCompiler$FileManagerWrapper$1",
       
    53         "jdk/test/lib/compiler/InMemoryJavaCompiler$MemoryJavaFileObject"
       
    54     };
       
    55 
       
    56     public static void main(String[] args) throws Exception {
       
    57         String wbJar =
       
    58             ClassFileInstaller.writeJar("WhiteBox.jar", "sun.hotspot.WhiteBox");
       
    59         String appJar =
       
    60             ClassFileInstaller.writeJar("RedefineBasic.jar", sharedClasses);
       
    61         String useWb = "-Xbootclasspath/a:" + wbJar;
       
    62 
       
    63         OutputAnalyzer output;
       
    64         TestCommon.testDump(appJar, sharedClasses, useWb);
       
    65 
       
    66         // redefineagent.jar is created by executing "@run driver RedefineClassHelper"
       
    67         // which should be called before executing RedefineBasicTest
       
    68         output = TestCommon.exec(appJar, useWb,
       
    69                                  "-XX:+UnlockDiagnosticVMOptions",
       
    70                                  "-XX:+WhiteBoxAPI",
       
    71                                  "-javaagent:redefineagent.jar",
       
    72                                  "RedefineBasic");
       
    73         TestCommon.checkExec(output);
       
    74     }
       
    75 }