Skip to content

Add JDK 25-EA testing to CI #9140

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ workflow:
- "11"
- "17"
- "21"
- "25"
- "stable"
- "semeru11"
- "oracle8"
Expand Down
Original file line number Diff line number Diff line change
@@ -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"
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
5 changes: 5 additions & 0 deletions dd-smoke-tests/log-injection/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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.'

Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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),
Expand Down