Skip to content

Commit 22fe4a9

Browse files
authored
Add JRE.JAVA_21 (#3119)
Additionally, add coverage for running on JDK 21-ea.
1 parent 1e819d6 commit 22fe4a9

File tree

13 files changed

+90
-82
lines changed

13 files changed

+90
-82
lines changed

.github/workflows/cross-version.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
openjdk:
2020
strategy:
2121
matrix:
22-
jdk: [19, 20]
22+
jdk: [19, 20, 21]
2323
name: "OpenJDK ${{ matrix.jdk }}"
2424
runs-on: ubuntu-latest
2525
steps:

documentation/src/docs/asciidoc/release-notes/release-notes-5.9.2.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ JUnit repository on GitHub.
4040

4141
==== New Features and Improvements
4242

43-
*
43+
* `JAVA_21` has been added to the `JRE` enum for use with JRE-based execution conditions.
4444

4545

4646
[[release-notes-5.9.2-junit-vintage]]

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ org.gradle.jvmargs=-Xmx1g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryEr
2121
--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
2222
org.gradle.caching=true
2323
org.gradle.parallel=true
24-
org.gradle.java.installations.fromEnv=JDK8,JDK18,JDK19,JDK20
24+
org.gradle.java.installations.fromEnv=JDK8,JDK18,JDK19,JDK20,JDK21
2525

2626
# Test Distribution
2727
gradle.internal.testdistribution.writeTraceFile=true

junit-jupiter-api/src/main/java/org/junit/jupiter/api/condition/JRE.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,12 +138,20 @@ public enum JRE {
138138
@API(status = STABLE, since = "5.9")
139139
JAVA_20,
140140

141+
/**
142+
* Java 20.
143+
*
144+
* @since 5.9.2
145+
*/
146+
@API(status = STABLE, since = "5.9.2")
147+
JAVA_21,
148+
141149
/**
142150
* A JRE version other than {@link #JAVA_8}, {@link #JAVA_9},
143151
* {@link #JAVA_10}, {@link #JAVA_11}, {@link #JAVA_12},
144152
* {@link #JAVA_13}, {@link #JAVA_14}, {@link #JAVA_15},
145153
* {@link #JAVA_16}, {@link #JAVA_17}, {@link #JAVA_18},
146-
* {@link #JAVA_19}, or {@link #JAVA_20}.
154+
* {@link #JAVA_19}, {@link #JAVA_20}, or {@link #JAVA_21}.
147155
*/
148156
OTHER;
149157

@@ -197,6 +205,8 @@ private static JRE determineCurrentVersion() {
197205
return JAVA_19;
198206
case 20:
199207
return JAVA_20;
208+
case 21:
209+
return JAVA_21;
200210
default:
201211
return OTHER;
202212
}

junit-jupiter-engine/src/test/java/org/junit/jupiter/api/condition/DisabledForJreRangeConditionTests.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava18;
2323
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava19;
2424
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava20;
25+
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava21;
2526
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava8;
2627
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava9;
2728

@@ -113,8 +114,9 @@ void javaMin18() {
113114
@Test
114115
void other() {
115116
evaluateCondition();
116-
assertDisabledOnCurrentJreIf(!(onJava8() || onJava9() || onJava10() || onJava11() || onJava12() || onJava13()
117-
|| onJava14() || onJava15() || onJava16() || onJava17() || onJava18() || onJava19() || onJava20()));
117+
assertDisabledOnCurrentJreIf(
118+
!(onJava8() || onJava9() || onJava10() || onJava11() || onJava12() || onJava13() || onJava14() || onJava15()
119+
|| onJava16() || onJava17() || onJava18() || onJava19() || onJava20() || onJava21()));
118120
}
119121

120122
private void assertDisabledOnCurrentJreIf(boolean condition) {

junit-jupiter-engine/src/test/java/org/junit/jupiter/api/condition/DisabledForJreRangeIntegrationTests.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava18;
2525
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava19;
2626
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava20;
27+
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava21;
2728
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava8;
2829
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava9;
2930
import static org.junit.jupiter.api.condition.JRE.JAVA_17;
@@ -82,7 +83,7 @@ void javaMin18() {
8283
@DisabledForJreRange(min = OTHER, max = OTHER)
8384
void other() {
8485
assertTrue(onJava8() || onJava9() || onJava10() || onJava11() || onJava12() || onJava13() || onJava14()
85-
|| onJava15() || onJava16() || onJava17() || onJava18() || onJava19() || onJava20());
86+
|| onJava15() || onJava16() || onJava17() || onJava18() || onJava19() || onJava20() || onJava21());
8687
}
8788

8889
}

junit-jupiter-engine/src/test/java/org/junit/jupiter/api/condition/DisabledOnJreConditionTests.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava18;
2424
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava19;
2525
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava20;
26+
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava21;
2627
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava8;
2728
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava9;
2829

@@ -196,14 +197,24 @@ void java20() {
196197
assertDisabledOnCurrentJreIf(onJava20());
197198
}
198199

200+
/**
201+
* @see DisabledOnJreIntegrationTests#java21()
202+
*/
203+
@Test
204+
void java21() {
205+
evaluateCondition();
206+
assertDisabledOnCurrentJreIf(onJava21());
207+
}
208+
199209
/**
200210
* @see DisabledOnJreIntegrationTests#other()
201211
*/
202212
@Test
203213
void other() {
204214
evaluateCondition();
205-
assertDisabledOnCurrentJreIf(!(onJava8() || onJava9() || onJava10() || onJava11() || onJava12() || onJava13()
206-
|| onJava14() || onJava15() || onJava16() || onJava17() || onJava18() || onJava19() || onJava20()));
215+
assertDisabledOnCurrentJreIf(
216+
!(onJava8() || onJava9() || onJava10() || onJava11() || onJava12() || onJava13() || onJava14() || onJava15()
217+
|| onJava16() || onJava17() || onJava18() || onJava19() || onJava20() || onJava21()));
207218
}
208219

209220
private void assertDisabledOnCurrentJreIf(boolean condition) {

junit-jupiter-engine/src/test/java/org/junit/jupiter/api/condition/DisabledOnJreIntegrationTests.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava18;
2525
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava19;
2626
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava20;
27+
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava21;
2728
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava8;
2829
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava9;
2930
import static org.junit.jupiter.api.condition.JRE.JAVA_10;
@@ -37,6 +38,7 @@
3738
import static org.junit.jupiter.api.condition.JRE.JAVA_18;
3839
import static org.junit.jupiter.api.condition.JRE.JAVA_19;
3940
import static org.junit.jupiter.api.condition.JRE.JAVA_20;
41+
import static org.junit.jupiter.api.condition.JRE.JAVA_21;
4042
import static org.junit.jupiter.api.condition.JRE.JAVA_8;
4143
import static org.junit.jupiter.api.condition.JRE.JAVA_9;
4244
import static org.junit.jupiter.api.condition.JRE.OTHER;
@@ -64,7 +66,7 @@ void missingJreDeclaration() {
6466

6567
@Test
6668
@DisabledOnJre(value = { JAVA_8, JAVA_9, JAVA_10, JAVA_11, JAVA_12, JAVA_13, JAVA_14, JAVA_15, JAVA_16, JAVA_17,
67-
JAVA_18, JAVA_19, JAVA_20, OTHER }, disabledReason = "Disabled on every JRE")
69+
JAVA_18, JAVA_19, JAVA_20, JAVA_21, OTHER }, disabledReason = "Disabled on every JRE")
6870
void disabledOnAllJavaVersions() {
6971
fail("should be disabled");
7072
}
@@ -147,11 +149,17 @@ void java20() {
147149
assertFalse(onJava20());
148150
}
149151

152+
@Test
153+
@DisabledOnJre(JAVA_21)
154+
void java21() {
155+
assertFalse(onJava21());
156+
}
157+
150158
@Test
151159
@DisabledOnJre(OTHER)
152160
void other() {
153161
assertTrue(onJava8() || onJava9() || onJava10() || onJava11() || onJava12() || onJava13() || onJava14()
154-
|| onJava15() || onJava16() || onJava17() || onJava18() || onJava19() || onJava20());
162+
|| onJava15() || onJava16() || onJava17() || onJava18() || onJava19() || onJava20() || onJava21());
155163
}
156164

157165
}

junit-jupiter-engine/src/test/java/org/junit/jupiter/api/condition/EnabledForJreRangeConditionTests.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava18;
2323
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava19;
2424
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava20;
25+
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava21;
2526
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava8;
2627
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava9;
2728

@@ -112,8 +113,9 @@ void javaMin18() {
112113
@Test
113114
void other() {
114115
evaluateCondition();
115-
assertEnabledOnCurrentJreIf(!(onJava8() || onJava9() || onJava10() || onJava11() || onJava12() || onJava13()
116-
|| onJava14() || onJava15() || onJava16() || onJava17() || onJava18() || onJava19() || onJava20()));
116+
assertEnabledOnCurrentJreIf(
117+
!(onJava8() || onJava9() || onJava10() || onJava11() || onJava12() || onJava13() || onJava14() || onJava15()
118+
|| onJava16() || onJava17() || onJava18() || onJava19() || onJava20() || onJava21()));
117119
}
118120

119121
private void assertEnabledOnCurrentJreIf(boolean condition) {

junit-jupiter-engine/src/test/java/org/junit/jupiter/api/condition/EnabledForJreRangeIntegrationTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava18;
2525
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava19;
2626
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava20;
27+
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava21;
2728
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava8;
2829
import static org.junit.jupiter.api.condition.EnabledOnJreIntegrationTests.onJava9;
2930
import static org.junit.jupiter.api.condition.JRE.JAVA_17;
@@ -77,15 +78,15 @@ void javaMax18() {
7778
@Test
7879
@EnabledForJreRange(min = JAVA_18)
7980
void javaMin18() {
80-
assertTrue(onJava18() || onJava19() || onJava20());
81+
assertTrue(onJava18() || onJava19() || onJava20() || onJava21());
8182
assertFalse(onJava17());
8283
}
8384

8485
@Test
8586
@EnabledForJreRange(min = OTHER, max = OTHER)
8687
void other() {
8788
assertFalse(onJava8() || onJava9() || onJava10() || onJava11() || onJava12() || onJava13() || onJava14()
88-
|| onJava15() || onJava16() || onJava17() || onJava18() || onJava19() || onJava20());
89+
|| onJava15() || onJava16() || onJava17() || onJava18() || onJava19() || onJava20() || onJava21());
8990
}
9091

9192
}

0 commit comments

Comments
 (0)