hotspot/test/runtime/modules/AccessCheckRead.java
changeset 44520 0553e129e0ec
parent 43665 4bb003cad9b9
child 46404 ae62ba99a1a7
equal deleted inserted replaced
44471:7e8e5ceecf99 44520:0553e129e0ec
    26  * @modules java.base/jdk.internal.misc
    26  * @modules java.base/jdk.internal.misc
    27  * @library /test/lib ..
    27  * @library /test/lib ..
    28  * @compile p2/c2.java
    28  * @compile p2/c2.java
    29  * @compile p1/c1.java
    29  * @compile p1/c1.java
    30  * @build sun.hotspot.WhiteBox
    30  * @build sun.hotspot.WhiteBox
    31  * @compile/module=java.base java/lang/reflect/ModuleHelper.java
    31  * @compile/module=java.base java/lang/ModuleHelper.java
    32  * @run main ClassFileInstaller sun.hotspot.WhiteBox
    32  * @run main ClassFileInstaller sun.hotspot.WhiteBox
    33  *                              sun.hotspot.WhiteBox$WhiteBoxPermission
    33  *                              sun.hotspot.WhiteBox$WhiteBoxPermission
    34  * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI AccessCheckRead
    34  * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI AccessCheckRead
    35  */
    35  */
    36 
    36 
    37 import java.lang.reflect.Module;
       
    38 import static jdk.test.lib.Asserts.*;
    37 import static jdk.test.lib.Asserts.*;
    39 
    38 
    40 public class AccessCheckRead {
    39 public class AccessCheckRead {
    41 
    40 
    42     // Test that a class in a package in module_one cannot access a class in
    41     // Test that a class in a package in module_one cannot access a class in
    43     // a package in module_two if module_one cannot read module_two.
    42     // a package in module_two if module_one cannot read module_two.
    44     public static void main(String args[]) throws Throwable {
    43     public static void main(String args[]) throws Throwable {
    45         Object m1x, m2x;
    44         Object m1x, m2x;
    46 
    45 
    47         // Get the java.lang.reflect.Module object for module java.base.
    46         // Get the java.lang.Module object for module java.base.
    48         Class jlObject = Class.forName("java.lang.Object");
    47         Class jlObject = Class.forName("java.lang.Object");
    49         Object jlObject_jlrM = jlObject.getModule();
    48         Object jlObject_jlM = jlObject.getModule();
    50         assertNotNull(jlObject_jlrM, "jlrModule object of java.lang.Object should not be null");
    49         assertNotNull(jlObject_jlM, "jlModule object of java.lang.Object should not be null");
    51 
    50 
    52         // Get the class loader for AccessCheckRead and assume it's also used to
    51         // Get the class loader for AccessCheckRead and assume it's also used to
    53         // load classes p1.c1 and p2.c2.
    52         // load classes p1.c1 and p2.c2.
    54         ClassLoader this_cldr = AccessCheckRead.class.getClassLoader();
    53         ClassLoader this_cldr = AccessCheckRead.class.getClassLoader();
    55 
    54 
    56         // Define a module for p1.
    55         // Define a module for p1.
    57         m1x = ModuleHelper.ModuleObject("module_one", this_cldr, new String[] { "p1" });
    56         m1x = ModuleHelper.ModuleObject("module_one", this_cldr, new String[] { "p1" });
    58         assertNotNull(m1x, "Module should not be null");
    57         assertNotNull(m1x, "Module should not be null");
    59         ModuleHelper.DefineModule(m1x, "9.0", "m1x/here", new String[] { "p1" });
    58         ModuleHelper.DefineModule(m1x, "9.0", "m1x/here", new String[] { "p1" });
    60         ModuleHelper.AddReadsModule(m1x, jlObject_jlrM);
    59         ModuleHelper.AddReadsModule(m1x, jlObject_jlM);
    61 
    60 
    62         // Define a module for p2.
    61         // Define a module for p2.
    63         m2x = ModuleHelper.ModuleObject("module_two", this_cldr, new String[] { "p2" });
    62         m2x = ModuleHelper.ModuleObject("module_two", this_cldr, new String[] { "p2" });
    64         assertNotNull(m2x, "Module should not be null");
    63         assertNotNull(m2x, "Module should not be null");
    65         ModuleHelper.DefineModule(m2x, "9.0", "m2x/there", new String[] { "p2" });
    64         ModuleHelper.DefineModule(m2x, "9.0", "m2x/there", new String[] { "p2" });
    66         ModuleHelper.AddReadsModule(m2x, jlObject_jlrM);
    65         ModuleHelper.AddReadsModule(m2x, jlObject_jlM);
    67 
    66 
    68         // Make package p1 in m1x visible to everyone.
    67         // Make package p1 in m1x visible to everyone.
    69         ModuleHelper.AddModuleExportsToAll(m1x, "p1");
    68         ModuleHelper.AddModuleExportsToAll(m1x, "p1");
    70 
    69 
    71         Class p1_c1_class = Class.forName("p1.c1");
    70         Class p1_c1_class = Class.forName("p1.c1");