2525import org .eclipse .jdt .core .JavaCore ;
2626import org .eclipse .jdt .core .JavaModelException ;
2727import org .eclipse .jdt .debug .tests .AbstractDebugTest ;
28+ import org .eclipse .jdt .launching .IVMInstall ;
2829import org .eclipse .jdt .launching .JavaRuntime ;
2930
3031public class ModuleOptionsTests extends AbstractDebugTest {
@@ -112,8 +113,9 @@ private int indexOfJREContainer(IClasspathEntry[] rawClasspath) {
112113 return -1 ;
113114 }
114115
115- public void testAddModules1 () throws JavaModelException {
116+ public void testAddModules1 () throws Exception {
116117 IJavaProject javaProject = getProjectContext ();
118+ checkVMInstall (javaProject );
117119 List <String > defaultModules = getDefaultModules (javaProject );
118120 defaultModules .add ("jdk.crypto.cryptoki" ); // requires jdk.crypto.ec up to Java 21
119121 try {
@@ -135,8 +137,9 @@ public void testAddModules1() throws JavaModelException {
135137 }
136138 }
137139
138- public void testLimitModules_release9 () throws CoreException {
140+ public void testLimitModules_release9 () throws Exception {
139141 IJavaProject javaProject = getProjectContext ();
142+ checkVMInstall (javaProject );
140143 try {
141144 javaProject .setOption (JavaCore .COMPILER_RELEASE , JavaCore .ENABLED );
142145 List <String > defaultModules = getDefaultModules (javaProject );
@@ -153,7 +156,7 @@ public void testLimitModules_release9() throws CoreException {
153156 + "jdk.net," //
154157 + "jdk.nio.mapmode," //
155158 // + "jdk.packager,jdk.packager.services,jdk.plugin.dom,"
156- // + "jdk.scripting.nashorn,"
159+ // + "jdk.scripting.nashorn,"
157160 + "jdk.sctp,"
158161 + "jdk.security.auth,jdk.security.jgss,jdk.unsupported," //
159162 + "jdk.unsupported.desktop,jdk.xml.dom" ;
@@ -178,8 +181,10 @@ public void testLimitModules_release9() throws CoreException {
178181 }
179182 }
180183
181- public void testLimitModules1 () throws JavaModelException {
184+ public void testLimitModules1 () throws Exception {
182185 IJavaProject javaProject = getProjectContext ();
186+ javaProject .setOption (JavaCore .COMPILER_RELEASE , JavaCore .DISABLED );
187+ checkVMInstall (javaProject );
183188 List <String > defaultModules = getDefaultModules (javaProject );
184189 String expectedModules ;
185190 String moduleList = String .join ("," , defaultModules );
@@ -218,4 +223,10 @@ public void testLimitModules1() throws JavaModelException {
218223 removeClasspathAttributesFromSystemLibrary (javaProject );
219224 }
220225 }
226+
227+ private void checkVMInstall (IJavaProject javaProject ) throws CoreException {
228+ IVMInstall vm = JavaRuntime .getVMInstall (javaProject );
229+ assertTrue ("Expected at least Java 21 for project JVM but got: " + vm .getName () + ", with location: "
230+ + vm .getInstallLocation (), JavaRuntime .compareJavaVersions (vm , JavaCore .VERSION_21 ) > 0 );
231+ }
221232}
0 commit comments