Skip to content

Commit 0bbc2b0

Browse files
bric3devflow.devflow-routing-intake
andauthored
Migrate debugger-integration-tests cross-project test source sharing to java-test-fixtures for Gradle 9.5 compatibility (#11416)
fix(smoke-tests): share debugger test helpers via java-test-fixtures Gradle 9.5 added a `DependencyHandler.project(String)` overload that returns a `ProjectDependency`. Inside a `dependencies { }` block, that overload now shadows the `Project.project(String)` accessor that previously resolved via Groovy fallback. Result: `project(':foo').sourceSets` no longer reaches the producing project's source sets — it hits a `DefaultProjectDependency` and fails with "unknown property 'sourceSets'". `dd-smoke-tests/debugger-integration-tests/build.gradle:21` used `project(':dd-java-agent:agent-debugger').sourceSets.test.output` to pull two helper classes (`LogProbeTestHelper`, `MoshiSnapshotTestHelper`) from `agent-debugger`'s test sources. Apply the canonical Gradle 9.5 fix (see #11367): expose the helpers via the `java-test-fixtures` plugin on `agent-debugger`. The helpers move from `src/test/java/com/datadog/debugger/util/` to `src/testFixtures/java/com/datadog/debugger/util/` (same package), and the consumer pulls them in via `testImplementation testFixtures(project(':dd-java-agent:agent-debugger'))`. The 15 existing in-project consumers (test classes inside agent-debugger) keep working because the testFixtures source set is automatically on the `test` source set's classpath. This unblocks running the root build on Gradle 9.5.1. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> chore(mongo): remove dead `sourceSets.test.output` comment in mongo-common The commented-out line was left behind in #11367 as a marker for the broken Gradle 9.5 pattern. The 9 mongo consumers have since migrated to `testFixtures(project(':...:mongo-common'))`, and the cross-project `sourceSets.test.output` reference is no longer used. Drop the comment. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Co-authored-by: devflow.devflow-routing-intake <devflow.devflow-routing-intake@kubernetes.us1.ddbuild.io>
1 parent 3b1c46e commit 0bbc2b0

5 files changed

Lines changed: 11 additions & 3 deletions

File tree

dd-java-agent/agent-debugger/build.gradle

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
33
plugins {
44
id 'com.gradleup.shadow'
55
id 'dd-trace-java.version-file'
6+
id 'java-test-fixtures'
67
}
78

89
apply from: "$rootDir/gradle/java.gradle"
@@ -47,6 +48,14 @@ dependencies {
4748
implementation libs.okhttp
4849
implementation libs.slf4j
4950

51+
// Dependencies needed to compile the test-fixture helpers (LogProbeTestHelper,
52+
// MoshiSnapshotTestHelper); they reference siblings + Moshi + internal-api.
53+
testFixturesImplementation project(':dd-java-agent:agent-debugger:debugger-bootstrap')
54+
testFixturesImplementation project(':dd-java-agent:agent-debugger:debugger-el')
55+
testFixturesImplementation project(':internal-api')
56+
testFixturesImplementation libs.moshi
57+
testFixturesImplementation libs.junit.jupiter
58+
5059
testImplementation libs.asm.util
5160
testImplementation libs.bundles.junit5
5261
testImplementation libs.junit.jupiter.params

dd-java-agent/agent-debugger/src/test/java/com/datadog/debugger/util/LogProbeTestHelper.java renamed to dd-java-agent/agent-debugger/src/testFixtures/java/com/datadog/debugger/util/LogProbeTestHelper.java

File renamed without changes.

dd-java-agent/agent-debugger/src/test/java/com/datadog/debugger/util/MoshiSnapshotTestHelper.java renamed to dd-java-agent/agent-debugger/src/testFixtures/java/com/datadog/debugger/util/MoshiSnapshotTestHelper.java

File renamed without changes.

dd-java-agent/instrumentation/mongo/mongo-common/build.gradle

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,5 @@ dependencies {
1515
testFixturesImplementation(project(':dd-java-agent:instrumentation-testing'))
1616
testFixturesImplementation group: 'org.testcontainers', name: 'mongodb', version: libs.versions.testcontainers.get()
1717

18-
//testImplementation project(':dd-java-agent:instrumentation:mongo').sourceSets.test.output
1918
testImplementation group: 'org.mongodb', name: 'mongo-java-driver', version: '3.1.0'
2019
}

dd-smoke-tests/debugger-integration-tests/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ dependencies {
1717
testImplementation project(':dd-java-agent:agent-debugger')
1818
testImplementation project(':dd-java-agent:agent-debugger:debugger-el')
1919
testImplementation project(':dd-java-agent:agent-debugger:debugger-bootstrap')
20-
// dependency on some helper classes made only for tests
21-
testImplementation project(':dd-java-agent:agent-debugger').sourceSets.test.output
20+
// helper classes shared via java-test-fixtures (LogProbeTestHelper, MoshiSnapshotTestHelper)
21+
testImplementation testFixtures(project(':dd-java-agent:agent-debugger'))
2222
testImplementation libs.bundles.junit5
2323
testImplementation libs.bundles.mockito
2424
}

0 commit comments

Comments
 (0)