Add OpenJDK 24
Change-Id: I01bd736bc454fdf7d4b0f8877080b98cc6b2cd03
diff --git a/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt b/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt
index cc9d447..5e3f088 100644
--- a/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt
+++ b/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt
@@ -55,7 +55,7 @@
JDK_11("jdk-11", 11),
JDK_17("jdk-17", 17),
JDK_21("jdk-21", 21),
- JDK_23("jdk-23", 23);
+ JDK_24("jdk-24", 24);
fun isJdk8(): Boolean {
return this == JDK_8
diff --git a/d8_r8/test/build.gradle.kts b/d8_r8/test/build.gradle.kts
index 665e59a..385f7ee 100644
--- a/d8_r8/test/build.gradle.kts
+++ b/d8_r8/test/build.gradle.kts
@@ -62,7 +62,7 @@
dependsOn(gradle.includedBuild("tests_java_11").task(":clean"))
dependsOn(gradle.includedBuild("tests_java_17").task(":clean"))
dependsOn(gradle.includedBuild("tests_java_21").task(":clean"))
- dependsOn(gradle.includedBuild("tests_java_23").task(":clean"))
+ dependsOn(gradle.includedBuild("tests_java_24").task(":clean"))
}
val packageTests by registering(Jar::class) {
@@ -477,6 +477,7 @@
dependsOn(testR8LibNoDeps)
} else {
dependsOn(gradle.includedBuild("tests_java_8").task(":test"))
+ dependsOn(gradle.includedBuild("tests_java_11").task(":test"))
dependsOn(gradle.includedBuild("tests_java_17").task(":test"))
dependsOn(gradle.includedBuild("tests_java_21").task(":test"))
dependsOn(gradle.includedBuild("tests_bootstrap").task(":test"))
diff --git a/d8_r8/test/settings.gradle.kts b/d8_r8/test/settings.gradle.kts
index c9bc4b4..73ef7f8 100644
--- a/d8_r8/test/settings.gradle.kts
+++ b/d8_r8/test/settings.gradle.kts
@@ -36,4 +36,4 @@
includeBuild(root.resolve("test_modules").resolve("tests_java_11"))
includeBuild(root.resolve("test_modules").resolve("tests_java_17"))
includeBuild(root.resolve("test_modules").resolve("tests_java_21"))
-includeBuild(root.resolve("test_modules").resolve("tests_java_23"))
+includeBuild(root.resolve("test_modules").resolve("tests_java_24"))
diff --git a/d8_r8/test_modules/tests_java_23/build.gradle.kts b/d8_r8/test_modules/tests_java_24/build.gradle.kts
similarity index 85%
rename from d8_r8/test_modules/tests_java_23/build.gradle.kts
rename to d8_r8/test_modules/tests_java_24/build.gradle.kts
index 8a20a32..2492e3b 100644
--- a/d8_r8/test_modules/tests_java_23/build.gradle.kts
+++ b/d8_r8/test_modules/tests_java_24/build.gradle.kts
@@ -14,10 +14,10 @@
java {
sourceSets.test.configure {
- java.srcDir(root.resolveAll("src", "test", "java23"))
+ java.srcDir(root.resolveAll("src", "test", "java24"))
}
- sourceCompatibility = JavaVersion.VERSION_23
- targetCompatibility = JavaVersion.VERSION_23
+ sourceCompatibility = JavaVersion.VERSION_24
+ targetCompatibility = JavaVersion.VERSION_24
}
val testbaseJavaCompileTask = projectTask("testbase", "compileJava")
@@ -36,14 +36,14 @@
dependsOn(gradle.includedBuild("shared").task(":downloadDeps"))
options.setFork(true)
options.forkOptions.memoryMaximumSize = "3g"
- options.forkOptions.executable = getCompilerPath(Jdk.JDK_23)
+ options.forkOptions.executable = getCompilerPath(Jdk.JDK_24)
}
withType<Test> {
notCompatibleWithConfigurationCache(
"Failure storing the configuration cache: cannot serialize object of type 'org.gradle.api.internal.project.DefaultProject', a subtype of 'org.gradle.api.Project', as these are not supported with the configuration cache")
TestingState.setUpTestingState(this)
- javaLauncher = getJavaLauncher(Jdk.JDK_23)
+ javaLauncher = getJavaLauncher(Jdk.JDK_24)
systemProperty("TEST_DATA_LOCATION",
layout.buildDirectory.dir("classes/java/test").get().toString())
systemProperty("TESTBASE_DATA_LOCATION",
diff --git a/d8_r8/test_modules/tests_java_23/settings.gradle.kts b/d8_r8/test_modules/tests_java_24/settings.gradle.kts
similarity index 95%
rename from d8_r8/test_modules/tests_java_23/settings.gradle.kts
rename to d8_r8/test_modules/tests_java_24/settings.gradle.kts
index 523efdb..c8111c1 100644
--- a/d8_r8/test_modules/tests_java_23/settings.gradle.kts
+++ b/d8_r8/test_modules/tests_java_24/settings.gradle.kts
@@ -21,7 +21,7 @@
}
}
-rootProject.name = "tests_java_23"
+rootProject.name = "tests_java_24"
val root = rootProject.projectDir.parentFile.parentFile
includeBuild(root.resolve("shared"))
diff --git a/infra/config/global/generated/cr-buildbucket.cfg b/infra/config/global/generated/cr-buildbucket.cfg
index 6e52868..7f15036 100644
--- a/infra/config/global/generated/cr-buildbucket.cfg
+++ b/infra/config/global/generated/cr-buildbucket.cfg
@@ -1551,7 +1551,7 @@
}
}
builders {
- name: "linux-jdk23"
+ name: "linux-jdk24"
swarming_host: "chrome-swarming.appspot.com"
swarming_tags: "vpython:native-python-wrapper"
dimensions: "cpu:x86-64"
@@ -1568,7 +1568,7 @@
' "builder_group": "internal.client.r8",'
' "recipe": "rex",'
' "test_options": ['
- ' "--runtimes=jdk23",'
+ ' "--runtimes=jdk24",'
' "--command_cache_dir=/tmp/ccache",'
' "--tool=r8",'
' "--print-times",'
@@ -1588,7 +1588,7 @@
}
}
builders {
- name: "linux-jdk23_release"
+ name: "linux-jdk24_release"
swarming_host: "chrome-swarming.appspot.com"
swarming_tags: "vpython:native-python-wrapper"
dimensions: "cpu:x86-64"
@@ -1605,7 +1605,7 @@
' "builder_group": "internal.client.r8",'
' "recipe": "rex",'
' "test_options": ['
- ' "--runtimes=jdk23",'
+ ' "--runtimes=jdk24",'
' "--command_cache_dir=/tmp/ccache",'
' "--tool=r8",'
' "--print-times",'
diff --git a/infra/config/global/generated/luci-milo.cfg b/infra/config/global/generated/luci-milo.cfg
index 0140744..7ee27d7 100644
--- a/infra/config/global/generated/luci-milo.cfg
+++ b/infra/config/global/generated/luci-milo.cfg
@@ -51,9 +51,9 @@
short_name: "jdk21"
}
builders {
- name: "buildbucket/luci.r8.ci/linux-jdk23"
+ name: "buildbucket/luci.r8.ci/linux-jdk24"
category: "R8"
- short_name: "jdk23"
+ short_name: "jdk24"
}
builders {
name: "buildbucket/luci.r8.ci/linux-android-4.0"
@@ -206,9 +206,9 @@
short_name: "jdk21"
}
builders {
- name: "buildbucket/luci.r8.ci/linux-jdk23_release"
+ name: "buildbucket/luci.r8.ci/linux-jdk24_release"
category: "Release|R8"
- short_name: "jdk23"
+ short_name: "jdk24"
}
builders {
name: "buildbucket/luci.r8.ci/linux-android-4.0_release"
diff --git a/infra/config/global/generated/luci-notify.cfg b/infra/config/global/generated/luci-notify.cfg
index f083858..f072a67 100644
--- a/infra/config/global/generated/luci-notify.cfg
+++ b/infra/config/global/generated/luci-notify.cfg
@@ -480,7 +480,7 @@
}
builders {
bucket: "ci"
- name: "linux-jdk23"
+ name: "linux-jdk24"
repository: "https://r8.googlesource.com/r8"
}
}
@@ -492,7 +492,7 @@
}
builders {
bucket: "ci"
- name: "linux-jdk23_release"
+ name: "linux-jdk24_release"
repository: "https://r8.googlesource.com/r8"
}
}
diff --git a/infra/config/global/generated/luci-scheduler.cfg b/infra/config/global/generated/luci-scheduler.cfg
index ddfa1c4..85927b6 100644
--- a/infra/config/global/generated/luci-scheduler.cfg
+++ b/infra/config/global/generated/luci-scheduler.cfg
@@ -617,7 +617,7 @@
}
}
job {
- id: "linux-jdk23"
+ id: "linux-jdk24"
realm: "ci"
acl_sets: "ci"
triggering_policy {
@@ -627,11 +627,11 @@
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
- builder: "linux-jdk23"
+ builder: "linux-jdk24"
}
}
job {
- id: "linux-jdk23_release"
+ id: "linux-jdk24_release"
realm: "ci"
acl_sets: "ci"
triggering_policy {
@@ -642,7 +642,7 @@
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
- builder: "linux-jdk23_release"
+ builder: "linux-jdk24_release"
}
}
job {
@@ -825,7 +825,7 @@
realm: "ci"
acl_sets: "ci"
triggers: "linux-android-15_release"
- triggers: "linux-jdk23_release"
+ triggers: "linux-jdk24_release"
gitiles {
repo: "https://r8.googlesource.com/r8"
refs: "regexp:refs/heads/([8]\\.([5-9]|[1-9][0-9])+(\\.[0-9]+)?|[9]\\.[0-9]+(\\.[0-9]+)?)"
@@ -899,7 +899,7 @@
triggers: "linux-jdk11"
triggers: "linux-jdk17"
triggers: "linux-jdk21"
- triggers: "linux-jdk23"
+ triggers: "linux-jdk24"
triggers: "linux-jdk8"
triggers: "linux-none"
triggers: "linux-old"
diff --git a/infra/config/global/generated/project.cfg b/infra/config/global/generated/project.cfg
index f6c5d0f..deed528 100644
--- a/infra/config/global/generated/project.cfg
+++ b/infra/config/global/generated/project.cfg
@@ -7,7 +7,7 @@
name: "r8"
access: "group:all"
lucicfg {
- version: "1.43.14"
+ version: "1.43.16"
package_dir: ".."
config_dir: "generated"
entry_point: "main.star"
diff --git a/infra/config/global/main.star b/infra/config/global/main.star
index 0bb7d17..9b257dc 100755
--- a/infra/config/global/main.star
+++ b/infra/config/global/main.star
@@ -375,8 +375,8 @@
["--runtimes=jdk21", "--command_cache_dir=/tmp/ccache"],
)
r8_tester_with_default(
- "linux-jdk23",
- ["--runtimes=jdk23", "--command_cache_dir=/tmp/ccache"],
+ "linux-jdk24",
+ ["--runtimes=jdk24", "--command_cache_dir=/tmp/ccache"],
release_trigger = ["branch-gitiles-8.5-forward"],
)
diff --git a/scripts/add-openjdk.sh b/scripts/add-openjdk.sh
index b1838fe..0eecb48 100755
--- a/scripts/add-openjdk.sh
+++ b/scripts/add-openjdk.sh
@@ -18,7 +18,7 @@
# Now run script with fingers crossed!
-JDK_VERSION="23.0.1"
+JDK_VERSION="24"
JDK_VERSION_FULL=${JDK_VERSION}
# For ea versions the full version name has a postfix.
# JDK_VERSION_FULL="${JDK_VERSION}-ea+33"
diff --git a/src/test/java23/com/android/tools/r8/java23/Java23ValidationTest.java b/src/test/java24/com/android/tools/r8/jdk24/Java24ValidationTest.java
similarity index 92%
rename from src/test/java23/com/android/tools/r8/java23/Java23ValidationTest.java
rename to src/test/java24/com/android/tools/r8/jdk24/Java24ValidationTest.java
index a06fe15..05ef994 100644
--- a/src/test/java23/com/android/tools/r8/java23/Java23ValidationTest.java
+++ b/src/test/java24/com/android/tools/r8/jdk24/Java24ValidationTest.java
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-package com.android.tools.r8.java23;
+package com.android.tools.r8.jdk24;
import static com.android.tools.r8.utils.InternalOptions.ASM_VERSION;
import static junit.framework.TestCase.assertEquals;
@@ -26,7 +26,7 @@
// Test to validate that the tests_java_23 module is built with JDK-23.
@RunWith(Parameterized.class)
-public class Java23ValidationTest extends TestBase {
+public class Java24ValidationTest extends TestBase {
static final String EXPECTED = StringUtils.lines("Hello, world");
@@ -37,7 +37,7 @@
return getTestParameters().withCfRuntimes().build();
}
- public Java23ValidationTest(TestParameters parameters) {
+ public Java24ValidationTest(TestParameters parameters) {
this.parameters = parameters;
}
@@ -78,7 +78,7 @@
@Test
public void testTestClassClassFileVersion() throws Exception {
assertEquals(
- CfVersion.V23,
+ CfVersion.V24,
extractClassFileVersion(ToolHelper.getClassFileForTestClass(TestClass.class)));
}
@@ -88,7 +88,7 @@
.addInnerClasses(getClass())
.run(parameters.getRuntime(), TestClass.class)
.applyIf(
- parameters.getCfRuntime().isOlderThan(CfVm.JDK23),
+ parameters.getCfRuntime().isOlderThan(CfVm.JDK24),
r -> r.assertFailureWithErrorThatThrows(UnsupportedClassVersionError.class),
r -> r.assertSuccessWithOutput(EXPECTED));
}
diff --git a/src/test/java23/com/android/tools/r8/java23/switchpatternmatching/DexNumberValueSwitchTest.java b/src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/DexNumberValueSwitchTest.java
similarity index 97%
rename from src/test/java23/com/android/tools/r8/java23/switchpatternmatching/DexNumberValueSwitchTest.java
rename to src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/DexNumberValueSwitchTest.java
index 4734d64..24d2bea 100644
--- a/src/test/java23/com/android/tools/r8/java23/switchpatternmatching/DexNumberValueSwitchTest.java
+++ b/src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/DexNumberValueSwitchTest.java
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-package com.android.tools.r8.java23.switchpatternmatching;
+package com.android.tools.r8.jdk24.switchpatternmatching;
import static com.android.tools.r8.desugar.switchpatternmatching.SwitchTestHelper.hasJdk21TypeSwitch;
import static org.junit.Assert.assertTrue;
@@ -30,7 +30,7 @@
@Parameters(name = "{0}")
public static TestParametersCollection data() {
return getTestParameters()
- .withCfRuntimesStartingFromIncluding(CfVm.JDK23)
+ .withCfRuntimesStartingFromIncluding(CfVm.JDK24)
.withDexRuntimes()
.withAllApiLevelsAlsoForCf()
.build();
diff --git a/src/test/java23/com/android/tools/r8/java23/switchpatternmatching/DexValueSwitchTest.java b/src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/DexValueSwitchTest.java
similarity index 97%
rename from src/test/java23/com/android/tools/r8/java23/switchpatternmatching/DexValueSwitchTest.java
rename to src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/DexValueSwitchTest.java
index 9f63637..6a2f0cf 100644
--- a/src/test/java23/com/android/tools/r8/java23/switchpatternmatching/DexValueSwitchTest.java
+++ b/src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/DexValueSwitchTest.java
@@ -2,7 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-package com.android.tools.r8.java23.switchpatternmatching;
+package com.android.tools.r8.jdk24.switchpatternmatching;
import static com.android.tools.r8.desugar.switchpatternmatching.SwitchTestHelper.hasJdk21TypeSwitch;
import static org.junit.Assert.assertTrue;
@@ -30,7 +30,7 @@
@Parameters(name = "{0}")
public static TestParametersCollection data() {
return getTestParameters()
- .withCfRuntimesStartingFromIncluding(CfVm.JDK23)
+ .withCfRuntimesStartingFromIncluding(CfVm.JDK24)
.withDexRuntimes()
.withAllApiLevelsAlsoForCf()
.build();
diff --git a/src/test/java23/com/android/tools/r8/java23/switchpatternmatching/EnumLessCasesAtRuntimeSwitchTest.java b/src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/EnumLessCasesAtRuntimeSwitchTest.java
similarity index 97%
rename from src/test/java23/com/android/tools/r8/java23/switchpatternmatching/EnumLessCasesAtRuntimeSwitchTest.java
rename to src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/EnumLessCasesAtRuntimeSwitchTest.java
index 558da5b..b4a4f32 100644
--- a/src/test/java23/com/android/tools/r8/java23/switchpatternmatching/EnumLessCasesAtRuntimeSwitchTest.java
+++ b/src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/EnumLessCasesAtRuntimeSwitchTest.java
@@ -1,7 +1,7 @@
// Copyright (c) 2024, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-package com.android.tools.r8.java23.switchpatternmatching;
+package com.android.tools.r8.jdk24.switchpatternmatching;
import static com.android.tools.r8.desugar.switchpatternmatching.SwitchTestHelper.hasJdk21EnumSwitch;
import static com.android.tools.r8.desugar.switchpatternmatching.SwitchTestHelper.hasJdk21TypeSwitch;
@@ -34,7 +34,7 @@
@Parameters(name = "{0}")
public static TestParametersCollection data() {
return getTestParameters()
- .withCfRuntimesStartingFromIncluding(CfVm.JDK23)
+ .withCfRuntimesStartingFromIncluding(CfVm.JDK24)
.withDexRuntimes()
.withAllApiLevelsAlsoForCf()
.build();
diff --git a/src/test/java23/com/android/tools/r8/java23/switchpatternmatching/EnumMoreCasesAtRuntimeSwitchTest.java b/src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/EnumMoreCasesAtRuntimeSwitchTest.java
similarity index 98%
rename from src/test/java23/com/android/tools/r8/java23/switchpatternmatching/EnumMoreCasesAtRuntimeSwitchTest.java
rename to src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/EnumMoreCasesAtRuntimeSwitchTest.java
index 0903865..83b634b 100644
--- a/src/test/java23/com/android/tools/r8/java23/switchpatternmatching/EnumMoreCasesAtRuntimeSwitchTest.java
+++ b/src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/EnumMoreCasesAtRuntimeSwitchTest.java
@@ -1,7 +1,7 @@
// Copyright (c) 2024, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-package com.android.tools.r8.java23.switchpatternmatching;
+package com.android.tools.r8.jdk24.switchpatternmatching;
import static com.android.tools.r8.desugar.switchpatternmatching.SwitchTestHelper.desugarMatchException;
import static com.android.tools.r8.desugar.switchpatternmatching.SwitchTestHelper.hasJdk21EnumSwitch;
@@ -36,7 +36,7 @@
@Parameters(name = "{0}")
public static TestParametersCollection data() {
return getTestParameters()
- .withCfRuntimesStartingFromIncluding(CfVm.JDK23)
+ .withCfRuntimesStartingFromIncluding(CfVm.JDK24)
.withDexRuntimes()
.withAllApiLevelsAlsoForCf()
.build();
diff --git a/src/test/java23/com/android/tools/r8/java23/switchpatternmatching/EnumSwitchOldSyntaxTest.java b/src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/EnumSwitchOldSyntaxTest.java
similarity index 95%
rename from src/test/java23/com/android/tools/r8/java23/switchpatternmatching/EnumSwitchOldSyntaxTest.java
rename to src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/EnumSwitchOldSyntaxTest.java
index 2c14b4b..52a69d3 100644
--- a/src/test/java23/com/android/tools/r8/java23/switchpatternmatching/EnumSwitchOldSyntaxTest.java
+++ b/src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/EnumSwitchOldSyntaxTest.java
@@ -1,7 +1,7 @@
// Copyright (c) 2025 the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-package com.android.tools.r8.java23.switchpatternmatching;
+package com.android.tools.r8.jdk24.switchpatternmatching;
import com.android.tools.r8.JdkClassFileProvider;
import com.android.tools.r8.TestBase;
@@ -23,7 +23,7 @@
@Parameters(name = "{0}")
public static TestParametersCollection data() {
return getTestParameters()
- .withCfRuntimesStartingFromIncluding(CfVm.JDK23)
+ .withCfRuntimesStartingFromIncluding(CfVm.JDK24)
.withDexRuntimes()
.withAllApiLevelsAlsoForCf()
.withPartialCompilation()
diff --git a/src/test/java23/com/android/tools/r8/java23/switchpatternmatching/EnumSwitchTest.java b/src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/EnumSwitchTest.java
similarity index 96%
rename from src/test/java23/com/android/tools/r8/java23/switchpatternmatching/EnumSwitchTest.java
rename to src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/EnumSwitchTest.java
index e9c5ae5..f570e96 100644
--- a/src/test/java23/com/android/tools/r8/java23/switchpatternmatching/EnumSwitchTest.java
+++ b/src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/EnumSwitchTest.java
@@ -1,7 +1,7 @@
// Copyright (c) 2024, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-package com.android.tools.r8.java23.switchpatternmatching;
+package com.android.tools.r8.jdk24.switchpatternmatching;
import static com.android.tools.r8.desugar.switchpatternmatching.SwitchTestHelper.desugarMatchException;
import static com.android.tools.r8.desugar.switchpatternmatching.SwitchTestHelper.hasJdk21TypeSwitch;
@@ -35,7 +35,7 @@
@Parameters(name = "{0}")
public static TestParametersCollection data() {
return getTestParameters()
- .withCfRuntimesStartingFromIncluding(CfVm.JDK23)
+ .withCfRuntimesStartingFromIncluding(CfVm.JDK24)
.withDexRuntimes()
.withAllApiLevelsAlsoForCf()
.build();
@@ -60,7 +60,7 @@
private <T extends TestBuilder<?, T>> void addModifiedProgramClasses(
TestBuilder<?, T> testBuilder) throws Exception {
- String d = "com/android/tools/r8/java23/switchpatternmatching/EnumSwitchTest$D";
+ String d = "com/android/tools/r8/jdk24/switchpatternmatching/EnumSwitchTest$D";
testBuilder
.addStrippedOuter(getClass())
.addProgramClasses(FakeI.class, E.class, C.class)
diff --git a/src/test/java23/com/android/tools/r8/java23/switchpatternmatching/EnumSwitchUsingEnumSwitchBootstrapMethodTest.java b/src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/EnumSwitchUsingEnumSwitchBootstrapMethodTest.java
similarity index 97%
rename from src/test/java23/com/android/tools/r8/java23/switchpatternmatching/EnumSwitchUsingEnumSwitchBootstrapMethodTest.java
rename to src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/EnumSwitchUsingEnumSwitchBootstrapMethodTest.java
index 9028df6..395673a 100644
--- a/src/test/java23/com/android/tools/r8/java23/switchpatternmatching/EnumSwitchUsingEnumSwitchBootstrapMethodTest.java
+++ b/src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/EnumSwitchUsingEnumSwitchBootstrapMethodTest.java
@@ -1,7 +1,7 @@
// Copyright (c) 2024, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-package com.android.tools.r8.java23.switchpatternmatching;
+package com.android.tools.r8.jdk24.switchpatternmatching;
import static com.android.tools.r8.desugar.switchpatternmatching.SwitchTestHelper.hasJdk21EnumSwitch;
import static org.junit.Assert.assertTrue;
@@ -32,7 +32,7 @@
@Parameters(name = "{0}")
public static TestParametersCollection data() {
return getTestParameters()
- .withCfRuntimesStartingFromIncluding(CfVm.JDK23)
+ .withCfRuntimesStartingFromIncluding(CfVm.JDK24)
.withDexRuntimes()
.withAllApiLevelsAlsoForCf()
.build();
diff --git a/src/test/java23/com/android/tools/r8/java23/switchpatternmatching/StringSwitchOldSyntaxTest.java b/src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/StringSwitchOldSyntaxTest.java
similarity index 95%
rename from src/test/java23/com/android/tools/r8/java23/switchpatternmatching/StringSwitchOldSyntaxTest.java
rename to src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/StringSwitchOldSyntaxTest.java
index 33c7e42..b83c3e5 100644
--- a/src/test/java23/com/android/tools/r8/java23/switchpatternmatching/StringSwitchOldSyntaxTest.java
+++ b/src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/StringSwitchOldSyntaxTest.java
@@ -1,7 +1,7 @@
// Copyright (c) 2025, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-package com.android.tools.r8.java23.switchpatternmatching;
+package com.android.tools.r8.jdk24.switchpatternmatching;
import com.android.tools.r8.JdkClassFileProvider;
import com.android.tools.r8.TestBase;
@@ -23,7 +23,7 @@
@Parameters(name = "{0}")
public static TestParametersCollection data() {
return getTestParameters()
- .withCfRuntimesStartingFromIncluding(CfVm.JDK23)
+ .withCfRuntimesStartingFromIncluding(CfVm.JDK24)
.withDexRuntimes()
.withAllApiLevelsAlsoForCf()
.withPartialCompilation()
diff --git a/src/test/java23/com/android/tools/r8/java23/switchpatternmatching/StringSwitchRegress382880986Test.java b/src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/StringSwitchRegress382880986Test.java
similarity index 96%
rename from src/test/java23/com/android/tools/r8/java23/switchpatternmatching/StringSwitchRegress382880986Test.java
rename to src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/StringSwitchRegress382880986Test.java
index 10ad8a1..21dc415 100644
--- a/src/test/java23/com/android/tools/r8/java23/switchpatternmatching/StringSwitchRegress382880986Test.java
+++ b/src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/StringSwitchRegress382880986Test.java
@@ -1,7 +1,7 @@
// Copyright (c) 2024, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-package com.android.tools.r8.java23.switchpatternmatching;
+package com.android.tools.r8.jdk24.switchpatternmatching;
import static com.android.tools.r8.desugar.switchpatternmatching.SwitchTestHelper.hasJdk21TypeSwitch;
import static org.junit.Assert.assertTrue;
@@ -29,7 +29,7 @@
@Parameters(name = "{0}")
public static TestParametersCollection data() {
return getTestParameters()
- .withCfRuntimesStartingFromIncluding(CfVm.JDK23)
+ .withCfRuntimesStartingFromIncluding(CfVm.JDK24)
.withDexRuntimes()
.withAllApiLevelsAlsoForCf()
.build();
diff --git a/src/test/java23/com/android/tools/r8/java23/switchpatternmatching/StringSwitchTest.java b/src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/StringSwitchTest.java
similarity index 96%
rename from src/test/java23/com/android/tools/r8/java23/switchpatternmatching/StringSwitchTest.java
rename to src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/StringSwitchTest.java
index 7786d21..5de9458 100644
--- a/src/test/java23/com/android/tools/r8/java23/switchpatternmatching/StringSwitchTest.java
+++ b/src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/StringSwitchTest.java
@@ -1,7 +1,7 @@
// Copyright (c) 2024, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-package com.android.tools.r8.java23.switchpatternmatching;
+package com.android.tools.r8.jdk24.switchpatternmatching;
import static com.android.tools.r8.desugar.switchpatternmatching.SwitchTestHelper.hasJdk21TypeSwitch;
import static org.junit.Assert.assertTrue;
@@ -32,7 +32,7 @@
@Parameters(name = "{0}")
public static TestParametersCollection data() {
return getTestParameters()
- .withCfRuntimesStartingFromIncluding(CfVm.JDK23)
+ .withCfRuntimesStartingFromIncluding(CfVm.JDK24)
.withDexRuntimes()
.withAllApiLevelsAlsoForCf()
.build();
diff --git a/src/test/java23/com/android/tools/r8/java23/switchpatternmatching/TypeSwitchMissingClassTest.java b/src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/TypeSwitchMissingClassTest.java
similarity index 97%
rename from src/test/java23/com/android/tools/r8/java23/switchpatternmatching/TypeSwitchMissingClassTest.java
rename to src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/TypeSwitchMissingClassTest.java
index b4ac823..2f817e9 100644
--- a/src/test/java23/com/android/tools/r8/java23/switchpatternmatching/TypeSwitchMissingClassTest.java
+++ b/src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/TypeSwitchMissingClassTest.java
@@ -1,7 +1,7 @@
// Copyright (c) 2024, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-package com.android.tools.r8.java23.switchpatternmatching;
+package com.android.tools.r8.jdk24.switchpatternmatching;
import static com.android.tools.r8.desugar.switchpatternmatching.SwitchTestHelper.hasJdk21TypeSwitch;
import static org.junit.Assert.assertTrue;
@@ -39,7 +39,7 @@
public static List<Object[]> data() {
return buildParameters(
getTestParameters()
- .withCfRuntimesStartingFromIncluding(CfVm.JDK23)
+ .withCfRuntimesStartingFromIncluding(CfVm.JDK24)
.withDexRuntimes()
.withAllApiLevelsAlsoForCf()
.build(),
diff --git a/src/test/java23/com/android/tools/r8/java23/switchpatternmatching/TypeSwitchTest.java b/src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/TypeSwitchTest.java
similarity index 96%
rename from src/test/java23/com/android/tools/r8/java23/switchpatternmatching/TypeSwitchTest.java
rename to src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/TypeSwitchTest.java
index e1eea16..e9ae575 100644
--- a/src/test/java23/com/android/tools/r8/java23/switchpatternmatching/TypeSwitchTest.java
+++ b/src/test/java24/com/android/tools/r8/jdk24/switchpatternmatching/TypeSwitchTest.java
@@ -1,7 +1,7 @@
// Copyright (c) 2024, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-package com.android.tools.r8.java23.switchpatternmatching;
+package com.android.tools.r8.jdk24.switchpatternmatching;
import static com.android.tools.r8.desugar.switchpatternmatching.SwitchTestHelper.hasJdk21TypeSwitch;
import static org.junit.Assert.assertTrue;
@@ -32,7 +32,7 @@
@Parameters(name = "{0}")
public static TestParametersCollection data() {
return getTestParameters()
- .withCfRuntimesStartingFromIncluding(CfVm.JDK23)
+ .withCfRuntimesStartingFromIncluding(CfVm.JDK24)
.withDexRuntimes()
.withAllApiLevelsAlsoForCf()
.build();
diff --git a/src/test/testbase/java/com/android/tools/r8/TestRuntime.java b/src/test/testbase/java/com/android/tools/r8/TestRuntime.java
index 889f7a3..8bfe1f7 100644
--- a/src/test/testbase/java/com/android/tools/r8/TestRuntime.java
+++ b/src/test/testbase/java/com/android/tools/r8/TestRuntime.java
@@ -40,7 +40,9 @@
JDK20("jdk20", 64),
// From JDK-21 only include LTS and latest non-LTS.
JDK21("jdk21", 65),
- JDK23("jdk23", 67);
+ // TODO(b/383073689) Remove JDK-23 when bots test JDK-23.
+ JDK23("jdk23", 67),
+ JDK24("jdk24", 68);
/** This should generally be the latest checked in CF runtime we fully support. */
private static final CfVm DEFAULT = JDK11;
@@ -96,6 +98,7 @@
private static final Path JDK17_PATH = Paths.get(ToolHelper.THIRD_PARTY_DIR, "openjdk", "jdk-17");
private static final Path JDK21_PATH = Paths.get(ToolHelper.THIRD_PARTY_DIR, "openjdk", "jdk-21");
private static final Path JDK23_PATH = Paths.get(ToolHelper.THIRD_PARTY_DIR, "openjdk", "jdk-23");
+ private static final Path JDK24_PATH = Paths.get(ToolHelper.THIRD_PARTY_DIR, "openjdk", "jdk-24");
private static final Map<CfVm, Path> jdkPaths =
ImmutableMap.of(
CfVm.JDK8, JDK8_PATH,
@@ -103,7 +106,8 @@
CfVm.JDK11, JDK11_PATH,
CfVm.JDK17, JDK17_PATH,
CfVm.JDK21, JDK21_PATH,
- CfVm.JDK23, JDK23_PATH);
+ CfVm.JDK23, JDK23_PATH,
+ CfVm.JDK24, JDK24_PATH);
public static CfRuntime getCheckedInJdk(CfVm vm) {
if (vm == CfVm.JDK8) {
@@ -156,8 +160,8 @@
return new CfRuntime(CfVm.JDK21, getCheckedInJdkHome(CfVm.JDK21));
}
- public static CfRuntime getCheckedInJdk23() {
- return new CfRuntime(CfVm.JDK23, getCheckedInJdkHome(CfVm.JDK23));
+ public static CfRuntime getCheckedInJdk24() {
+ return new CfRuntime(CfVm.JDK24, getCheckedInJdkHome(CfVm.JDK24));
}
public static List<CfRuntime> getCheckedInCfRuntimes() {
@@ -168,7 +172,7 @@
getCheckedInJdk11(),
getCheckedInJdk17(),
getCheckedInJdk21(),
- getCheckedInJdk23()
+ getCheckedInJdk24()
};
Builder<CfRuntime> builder = ImmutableList.builder();
for (CfRuntime jdk : jdks) {
@@ -229,8 +233,8 @@
if (version.equals("21") || version.startsWith("21.")) {
return new CfRuntime(CfVm.JDK21, Paths.get(home));
}
- if (version.equals("23") || version.startsWith("23.")) {
- return new CfRuntime(CfVm.JDK23, Paths.get(home));
+ if (version.equals("24") || version.startsWith("24.")) {
+ return new CfRuntime(CfVm.JDK24, Paths.get(home));
}
throw new Unimplemented("No support for JDK version: " + version);
}
diff --git a/third_party/openjdk/jdk-24/linux.tar.gz.sha1 b/third_party/openjdk/jdk-24/linux.tar.gz.sha1
new file mode 100644
index 0000000..d0392f1
--- /dev/null
+++ b/third_party/openjdk/jdk-24/linux.tar.gz.sha1
@@ -0,0 +1 @@
+b52dbdd566a9cc17bfaab422b7fe6399b4686fdc
\ No newline at end of file
diff --git a/third_party/openjdk/jdk-24/osx.tar.gz.sha1 b/third_party/openjdk/jdk-24/osx.tar.gz.sha1
new file mode 100644
index 0000000..c6baaab
--- /dev/null
+++ b/third_party/openjdk/jdk-24/osx.tar.gz.sha1
@@ -0,0 +1 @@
+acd69121b6d857b279d9c4836743e302f3738d9e
\ No newline at end of file
diff --git a/third_party/openjdk/jdk-24/windows.tar.gz.sha1 b/third_party/openjdk/jdk-24/windows.tar.gz.sha1
new file mode 100644
index 0000000..7500e8e
--- /dev/null
+++ b/third_party/openjdk/jdk-24/windows.tar.gz.sha1
@@ -0,0 +1 @@
+17eeb98e6e5829bcac03bdbe95d6d0673fa40d46
\ No newline at end of file
diff --git a/tools/jdk.py b/tools/jdk.py
index 6b92f2c..e2454eb 100755
--- a/tools/jdk.py
+++ b/tools/jdk.py
@@ -10,7 +10,7 @@
JDK_DIRS = os.path.join(defines.THIRD_PARTY, 'openjdk')
-ALL_JDKS = ['openjdk-9.0.4', 'jdk-11', 'jdk-17', 'jdk-21', 'jdk-23']
+ALL_JDKS = ['openjdk-9.0.4', 'jdk-11', 'jdk-17', 'jdk-21', 'jdk-24']
def GetDefaultJdkHome():
diff --git a/tools/test.py b/tools/test.py
index 8dc8b32..b08e1ba 100755
--- a/tools/test.py
+++ b/tools/test.py
@@ -52,7 +52,7 @@
'jdk11',
'jdk17',
'jdk21',
- 'jdk23',
+ 'jdk24'
] + ['dex-%s' % dexvm for dexvm in ALL_ART_VMS]