test/hotspot/jtreg/testlibrary_tests/RedefineClassTest.java
changeset 50735 2f2af62dfac7
parent 47216 71c04702a3d5
equal deleted inserted replaced
50734:0828a0f6676b 50735:2f2af62dfac7
     1 /*
     1 /*
     2  * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     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
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
    36 import static jdk.test.lib.Asserts.*;
    36 import static jdk.test.lib.Asserts.*;
    37 
    37 
    38 /*
    38 /*
    39  * Proof of concept test for the test utility class RedefineClassHelper
    39  * Proof of concept test for the test utility class RedefineClassHelper
    40  */
    40  */
       
    41 
       
    42 // package access top-level class to avoid problem with RedefineClassHelper
       
    43 // and nested types.
       
    44 class RedefineClassTest_A {
       
    45     public int Method() {
       
    46         return 1;
       
    47     }
       
    48 }
       
    49 
    41 public class RedefineClassTest {
    50 public class RedefineClassTest {
    42 
    51 
    43     public static String newClass = "class RedefineClassTest$A { public int Method() { return 2; } }";
    52     public static String newClass = "class RedefineClassTest_A { public int Method() { return 2; } }";
    44     public static void main(String[] args) throws Exception {
    53     public static void main(String[] args) throws Exception {
    45         A a = new A();
    54         RedefineClassTest_A a = new RedefineClassTest_A();
    46         assertTrue(a.Method() == 1);
    55         assertTrue(a.Method() == 1);
    47         RedefineClassHelper.redefineClass(A.class, newClass);
    56         RedefineClassHelper.redefineClass(RedefineClassTest_A.class, newClass);
    48         assertTrue(a.Method() == 2);
    57         assertTrue(a.Method() == 2);
    49     }
    58     }
    50 
       
    51     static class A {
       
    52         public int Method() {
       
    53             return 1;
       
    54         }
       
    55     }
       
    56 }
    59 }