Skip to content

Commit 893941d

Browse files
authored
Add JDK 25-EA testing to CI (#9140)
* Add 25 to test matrices * Skip gradle related test failures * Skip maven test failure * Test java-concurrent-21 on Java 21-24 only * Skip java-lang test failure * Skip log4j1 test failure * Remove 25 from default test JVMs * Remove 25 from other default test JVMs
1 parent 032aad2 commit 893941d

File tree

8 files changed

+29
-0
lines changed

8 files changed

+29
-0
lines changed

.gitlab-ci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ workflow:
6060
- "11"
6161
- "17"
6262
- "21"
63+
- "25"
6364
- "stable"
6465
- "semeru11"
6566
- "oracle8"

dd-java-agent/instrumentation/java-concurrent/java-concurrent-21/build.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
ext {
22
minJavaVersionForTests = JavaVersion.VERSION_21
3+
// Structured concurrency is a preview feature in Java 21. Methods (e.g. ShutdownOnFailure) used in this instrumentation test are no longer available in Java 25, so we set the max version to 24.
4+
// See: https://download.java.net/java/early_access/loom/docs/api/java.base/java/util/concurrent/StructuredTaskScope.html
5+
maxJavaVersionForTests = JavaVersion.VERSION_24
36
}
47

58
apply from: "$rootDir/gradle/java.gradle"

dd-java-agent/instrumentation/java-lang/src/test/groovy/datadog/trace/instrumentation/java/lang/RuntimeCallSiteTest.groovy

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
11
package datadog.trace.instrumentation.java.lang
22

3+
import datadog.environment.JavaVirtualMachine
34
import datadog.trace.agent.test.AgentTestRunner
45
import datadog.trace.api.iast.InstrumentationBridge
56
import datadog.trace.api.iast.sink.CommandInjectionModule
67
import foo.bar.TestRuntimeSuite
78
import groovy.transform.CompileDynamic
9+
import spock.lang.IgnoreIf
810

911
@CompileDynamic
12+
@IgnoreIf(reason = "TODO: Fix for Java 25.", value = {
13+
JavaVirtualMachine.isJavaVersionAtLeast(25)
14+
})
1015
class RuntimeCallSiteTest extends AgentTestRunner {
1116

1217
@Override

dd-java-agent/instrumentation/log4j1/src/test/groovy/MdcTest.groovy

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
1+
import datadog.environment.JavaVirtualMachine
12
import datadog.trace.agent.test.AgentTestRunner
23
import org.apache.log4j.Category
34
import org.apache.log4j.MDC
45
import org.apache.log4j.Priority
56
import org.apache.log4j.spi.LoggingEvent
7+
import spock.lang.IgnoreIf
68

79
class MdcTest extends AgentTestRunner {
10+
@IgnoreIf(reason = "TODO: Fix for Java 25.", value = {
11+
JavaVirtualMachine.isJavaVersionAtLeast(25)
12+
})
813
def "should preserve mdc when logging injection is #injectionEnabled"() {
914
setup:
1015
injectSysConfig("logs.injection", injectionEnabled)

dd-smoke-tests/gradle/src/test/groovy/datadog/smoketest/AbstractGradleTest.groovy

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ class AbstractGradleTest extends CiVisibilitySmokeTest {
9191

9292
private static boolean isSupported(ComparableVersion gradleVersion) {
9393
// https://docs.gradle.org/current/userguide/compatibility.html
94+
// TODO: Fix for Java 25. Add a new condition for Java 25 when it is supported by Gradle.
9495
if (Jvm.current.isJavaVersionCompatible(24)) {
9596
return gradleVersion.compareTo(new ComparableVersion("8.14")) >= 0
9697
} else if (Jvm.current.java21Compatible) {

dd-smoke-tests/gradle/src/test/groovy/datadog/smoketest/GradleDaemonSmokeTest.groovy

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ import spock.lang.TempDir
2323
import java.nio.file.Files
2424
import java.nio.file.Path
2525

26+
@IgnoreIf(reason = "TODO: Fix for Java 25. Gradle does not support Java 25 yet: https://docs.gradle.org/current/userguide/compatibility.html#java_runtime", value = {
27+
JavaVirtualMachine.isJavaVersionAtLeast(25)
28+
})
2629
class GradleDaemonSmokeTest extends AbstractGradleTest {
2730

2831
private static final String TEST_SERVICE_NAME = "test-gradle-service"

dd-smoke-tests/log-injection/build.gradle

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@ plugins {
44
id 'com.gradleup.shadow'
55
}
66

7+
ext {
8+
// TODO: Fix for Java 25. Gradle Test Executor failed. Update givenGradleVersionIsCompatibleWithCurrentJvm() when Gradle releases Java 25 support: https://docs.gradle.org/current/userguide/compatibility.html#java_runtime
9+
maxJavaVersionForTests = JavaVersion.VERSION_24
10+
}
11+
712
apply from: "$rootDir/gradle/java.gradle"
813
description = 'Log injection Smoke Tests.'
914

dd-smoke-tests/maven/src/test/groovy/datadog/smoketest/MavenSmokeTest.groovy

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
package datadog.smoketest
22

3+
import datadog.environment.JavaVirtualMachine
34
import datadog.trace.api.Config
45
import datadog.trace.api.civisibility.CIConstants
56
import datadog.trace.api.config.CiVisibilityConfig
67
import datadog.trace.api.config.GeneralConfig
78
import datadog.trace.civisibility.CiVisibilitySmokeTest
89
import datadog.trace.util.Strings
10+
import spock.lang.IgnoreIf
11+
912
import java.nio.file.FileVisitResult
1013
import java.nio.file.Files
1114
import java.nio.file.Path
@@ -57,6 +60,9 @@ class MavenSmokeTest extends CiVisibilitySmokeTest {
5760
mockBackend.reset()
5861
}
5962

63+
@IgnoreIf(reason = "TODO: Fix for Java 25. test_successful_maven_run_junit_platform_runner jacoco coverage is failing, possibly due to lack of jacoco support for Java 25. Recommended fix is to update DEFAULT_CIVISIBILITY_JACOCO_PLUGIN_VERSION when support is added: https://github.com/jacoco/jacoco/releases", value = {
64+
JavaVirtualMachine.isJavaVersionAtLeast(25)
65+
})
6066
def "test #projectName, v#mavenVersion"() {
6167
println "Starting: ${projectName} ${mavenVersion}"
6268
Assumptions.assumeTrue(Jvm.current.isJavaVersionCompatible(minSupportedJavaVersion),

0 commit comments

Comments
 (0)