@@ -3012,14 +3012,35 @@ def apply(self, config):
30123012 # VMAccess needs to access jdk.internal.module.Modules
30133013 vmArgs .extend (['--add-exports=java.base/jdk.internal.module=jdk.graal.compiler.vmaccess' ])
30143014
3015- # JVMCI is dynamically exported to Graal when JVMCI is initialized. This is too late
3016- # for the junit harness which uses reflection to find @Test methods. In addition, the
3017- # tests widely use JVMCI classes so JVMCI needs to also export all its packages to
3018- # ALL-UNNAMED.
3015+ # Configure tests may run before JVMCI applies its dynamic exports, so export these
3016+ # packages eagerly.
30193017 mainClassArgs .extend (['-JUnitOpenPackages' , 'jdk.internal.vm.ci/*=jdk.graal.compiler,ALL-UNNAMED' ])
30203018 mainClassArgs .extend (['-JUnitOpenPackages' , 'org.graalvm.nativeimage/*=ALL-UNNAMED' ])
30213019
30223020 return (vmArgs , mainClass , mainClassArgs )
30233021
30243022
30253023mx_unittest .register_unittest_config (StandalonePointstoUnittestsConfig ())
3024+
3025+
3026+ class SvmUnittestConfig (mx_compiler .GraalUnittestConfig ):
3027+
3028+ def __init__ (self ):
3029+ super (SvmUnittestConfig , self ).__init__ ('svm-unittest' )
3030+
3031+ def apply (self , config ):
3032+ vmArgs , mainClass , mainClassArgs = super (SvmUnittestConfig , self ).apply (config )
3033+
3034+ # SubstrateVM configure tests can initialize pointsto classes before JVMCI has performed
3035+ # its dynamic exports, so they need these JVMCI packages exported eagerly.
3036+ vmArgs .extend ([
3037+ '--add-exports=jdk.internal.vm.ci/jdk.vm.ci.meta=ALL-UNNAMED' ,
3038+ '--add-exports=jdk.internal.vm.ci/jdk.vm.ci.meta.annotation=ALL-UNNAMED' ,
3039+ '--add-exports=jdk.internal.vm.ci/jdk.vm.ci.meta.annotation=jdk.graal.compiler.vmaccess' ,
3040+ '--add-exports=jdk.internal.vm.ci/jdk.vm.ci.code=ALL-UNNAMED' ,
3041+ ])
3042+
3043+ return (vmArgs , mainClass , mainClassArgs )
3044+
3045+
3046+ mx_unittest .register_unittest_config (SvmUnittestConfig ())
0 commit comments