diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7368f16e3ac..4588968d8a5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -60,6 +60,7 @@ workflow: - "11" - "17" - "21" + - "25" - "stable" - "semeru11" - "oracle8" diff --git a/dd-java-agent/instrumentation/java-concurrent/java-concurrent-21/build.gradle b/dd-java-agent/instrumentation/java-concurrent/java-concurrent-21/build.gradle index a47a59025ac..361477f06ff 100644 --- a/dd-java-agent/instrumentation/java-concurrent/java-concurrent-21/build.gradle +++ b/dd-java-agent/instrumentation/java-concurrent/java-concurrent-21/build.gradle @@ -1,5 +1,8 @@ ext { minJavaVersionForTests = JavaVersion.VERSION_21 + // 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. + // See: https://download.java.net/java/early_access/loom/docs/api/java.base/java/util/concurrent/StructuredTaskScope.html + maxJavaVersionForTests = JavaVersion.VERSION_24 } apply from: "$rootDir/gradle/java.gradle" diff --git a/dd-java-agent/instrumentation/java-lang/src/test/groovy/datadog/trace/instrumentation/java/lang/RuntimeCallSiteTest.groovy b/dd-java-agent/instrumentation/java-lang/src/test/groovy/datadog/trace/instrumentation/java/lang/RuntimeCallSiteTest.groovy index 7683bd644f7..dce5130a6c5 100644 --- a/dd-java-agent/instrumentation/java-lang/src/test/groovy/datadog/trace/instrumentation/java/lang/RuntimeCallSiteTest.groovy +++ b/dd-java-agent/instrumentation/java-lang/src/test/groovy/datadog/trace/instrumentation/java/lang/RuntimeCallSiteTest.groovy @@ -1,12 +1,17 @@ package datadog.trace.instrumentation.java.lang +import datadog.environment.JavaVirtualMachine import datadog.trace.agent.test.AgentTestRunner import datadog.trace.api.iast.InstrumentationBridge import datadog.trace.api.iast.sink.CommandInjectionModule import foo.bar.TestRuntimeSuite import groovy.transform.CompileDynamic +import spock.lang.IgnoreIf @CompileDynamic +@IgnoreIf(reason = "TODO: Fix for Java 25.", value = { + JavaVirtualMachine.isJavaVersionAtLeast(25) +}) class RuntimeCallSiteTest extends AgentTestRunner { @Override diff --git a/dd-java-agent/instrumentation/log4j1/src/test/groovy/MdcTest.groovy b/dd-java-agent/instrumentation/log4j1/src/test/groovy/MdcTest.groovy index f457cf5bb3f..54c7fd33a59 100644 --- a/dd-java-agent/instrumentation/log4j1/src/test/groovy/MdcTest.groovy +++ b/dd-java-agent/instrumentation/log4j1/src/test/groovy/MdcTest.groovy @@ -1,10 +1,15 @@ +import datadog.environment.JavaVirtualMachine import datadog.trace.agent.test.AgentTestRunner import org.apache.log4j.Category import org.apache.log4j.MDC import org.apache.log4j.Priority import org.apache.log4j.spi.LoggingEvent +import spock.lang.IgnoreIf class MdcTest extends AgentTestRunner { + @IgnoreIf(reason = "TODO: Fix for Java 25.", value = { + JavaVirtualMachine.isJavaVersionAtLeast(25) + }) def "should preserve mdc when logging injection is #injectionEnabled"() { setup: injectSysConfig("logs.injection", injectionEnabled) diff --git a/dd-smoke-tests/gradle/src/test/groovy/datadog/smoketest/AbstractGradleTest.groovy b/dd-smoke-tests/gradle/src/test/groovy/datadog/smoketest/AbstractGradleTest.groovy index 68c3864efa1..3dc0b365c9a 100644 --- a/dd-smoke-tests/gradle/src/test/groovy/datadog/smoketest/AbstractGradleTest.groovy +++ b/dd-smoke-tests/gradle/src/test/groovy/datadog/smoketest/AbstractGradleTest.groovy @@ -91,6 +91,7 @@ class AbstractGradleTest extends CiVisibilitySmokeTest { private static boolean isSupported(ComparableVersion gradleVersion) { // https://docs.gradle.org/current/userguide/compatibility.html + // TODO: Fix for Java 25. Add a new condition for Java 25 when it is supported by Gradle. if (Jvm.current.isJavaVersionCompatible(24)) { return gradleVersion.compareTo(new ComparableVersion("8.14")) >= 0 } else if (Jvm.current.java21Compatible) { diff --git a/dd-smoke-tests/gradle/src/test/groovy/datadog/smoketest/GradleDaemonSmokeTest.groovy b/dd-smoke-tests/gradle/src/test/groovy/datadog/smoketest/GradleDaemonSmokeTest.groovy index 0a3d397ef95..57b4d4e5a02 100644 --- a/dd-smoke-tests/gradle/src/test/groovy/datadog/smoketest/GradleDaemonSmokeTest.groovy +++ b/dd-smoke-tests/gradle/src/test/groovy/datadog/smoketest/GradleDaemonSmokeTest.groovy @@ -23,6 +23,9 @@ import spock.lang.TempDir import java.nio.file.Files import java.nio.file.Path +@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 = { + JavaVirtualMachine.isJavaVersionAtLeast(25) +}) class GradleDaemonSmokeTest extends AbstractGradleTest { private static final String TEST_SERVICE_NAME = "test-gradle-service" diff --git a/dd-smoke-tests/log-injection/build.gradle b/dd-smoke-tests/log-injection/build.gradle index 5c145372b46..6a055a5e344 100644 --- a/dd-smoke-tests/log-injection/build.gradle +++ b/dd-smoke-tests/log-injection/build.gradle @@ -4,6 +4,11 @@ plugins { id 'com.gradleup.shadow' } +ext { + // 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 + maxJavaVersionForTests = JavaVersion.VERSION_24 +} + apply from: "$rootDir/gradle/java.gradle" description = 'Log injection Smoke Tests.' diff --git a/dd-smoke-tests/maven/src/test/groovy/datadog/smoketest/MavenSmokeTest.groovy b/dd-smoke-tests/maven/src/test/groovy/datadog/smoketest/MavenSmokeTest.groovy index 647dfc913dc..83da2154689 100644 --- a/dd-smoke-tests/maven/src/test/groovy/datadog/smoketest/MavenSmokeTest.groovy +++ b/dd-smoke-tests/maven/src/test/groovy/datadog/smoketest/MavenSmokeTest.groovy @@ -1,11 +1,14 @@ package datadog.smoketest +import datadog.environment.JavaVirtualMachine import datadog.trace.api.Config import datadog.trace.api.civisibility.CIConstants import datadog.trace.api.config.CiVisibilityConfig import datadog.trace.api.config.GeneralConfig import datadog.trace.civisibility.CiVisibilitySmokeTest import datadog.trace.util.Strings +import spock.lang.IgnoreIf + import java.nio.file.FileVisitResult import java.nio.file.Files import java.nio.file.Path @@ -57,6 +60,9 @@ class MavenSmokeTest extends CiVisibilitySmokeTest { mockBackend.reset() } + @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 = { + JavaVirtualMachine.isJavaVersionAtLeast(25) + }) def "test #projectName, v#mavenVersion"() { println "Starting: ${projectName} ${mavenVersion}" Assumptions.assumeTrue(Jvm.current.isJavaVersionCompatible(minSupportedJavaVersion),