src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/ConstantPoolSubstitutionsTests.java
changeset 58299 6df94ce3ab2f
parent 55509 d58442b8abc1
child 58533 46b0b7fe255c
equal deleted inserted replaced
58298:0152ad7b38b8 58299:6df94ce3ab2f
     1 /*
     1 /*
     2  * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2015, 2019, 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.
    23 
    23 
    24 
    24 
    25 
    25 
    26 package org.graalvm.compiler.hotspot.test;
    26 package org.graalvm.compiler.hotspot.test;
    27 
    27 
    28 import static org.graalvm.compiler.test.JLModule.uncheckedAddExports;
    28 import static org.graalvm.compiler.serviceprovider.JavaVersionUtil.JAVA_SPEC;
    29 
    29 
    30 import java.lang.reflect.Method;
    30 import java.lang.reflect.Method;
    31 
    31 
    32 import org.graalvm.compiler.core.test.GraalCompilerTest;
    32 import org.graalvm.compiler.core.test.GraalCompilerTest;
    33 import org.graalvm.compiler.debug.DebugContext;
    33 import org.graalvm.compiler.debug.DebugContext;
    34 import org.graalvm.compiler.graph.Node;
    34 import org.graalvm.compiler.graph.Node;
    35 import org.graalvm.compiler.nodes.Invoke;
    35 import org.graalvm.compiler.nodes.Invoke;
    36 import org.graalvm.compiler.nodes.StructuredGraph;
    36 import org.graalvm.compiler.nodes.StructuredGraph;
    37 import org.graalvm.compiler.nodes.StructuredGraph.AllowAssumptions;
    37 import org.graalvm.compiler.nodes.StructuredGraph.AllowAssumptions;
    38 import org.graalvm.compiler.serviceprovider.JavaVersionUtil;
    38 import org.graalvm.compiler.serviceprovider.JavaVersionUtil;
    39 import org.graalvm.compiler.test.JLModule;
    39 import org.graalvm.compiler.test.ModuleSupport;
    40 import org.junit.BeforeClass;
    40 import org.junit.BeforeClass;
    41 import org.junit.Test;
    41 import org.junit.Test;
    42 import org.objectweb.asm.ClassWriter;
    42 import org.objectweb.asm.ClassWriter;
    43 import org.objectweb.asm.MethodVisitor;
    43 import org.objectweb.asm.MethodVisitor;
    44 import org.objectweb.asm.Opcodes;
    44 import org.objectweb.asm.Opcodes;
   107     public static void beforeClass() {
   107     public static void beforeClass() {
   108         addExports(AsmLoader.class);
   108         addExports(AsmLoader.class);
   109     }
   109     }
   110 
   110 
   111     /**
   111     /**
   112      * This test uses some API hidden by the JDK9 module system.
   112      * This test uses some non-public API.
   113      */
   113      */
   114     private static void addExports(Class<?> c) {
   114     private static void addExports(Class<?> c) {
   115         if (JavaVersionUtil.JAVA_SPEC > 8) {
   115         String packageName = JAVA_SPEC <= 11 ? "jdk.internal.misc" : "jdk.internal.access";
   116             Object javaBaseModule = JLModule.fromClass(String.class);
   116         ModuleSupport.exportPackageTo(String.class, packageName, c);
   117             Object cModule = JLModule.fromClass(c);
   117         ModuleSupport.exportPackageTo(String.class, "jdk.internal.reflect", c);
   118             uncheckedAddExports(javaBaseModule, "jdk.internal.reflect", cModule);
       
   119             if (JavaVersionUtil.JAVA_SPEC <= 11) {
       
   120                 uncheckedAddExports(javaBaseModule, "jdk.internal.misc", cModule);
       
   121             } else {
       
   122                 uncheckedAddExports(javaBaseModule, "jdk.internal.access", cModule);
       
   123             }
       
   124         }
       
   125     }
   118     }
   126 
   119 
   127     @Test
   120     @Test
   128     public void testGetSize() {
   121     public void testGetSize() {
   129         Object cp = getConstantPoolForObject();
   122         Object cp = getConstantPoolForObject();