From 11982ce4042bb8c38da0506689998bc46df8c465 Mon Sep 17 00:00:00 2001 From: Brice Dutheil Date: Mon, 10 Nov 2025 16:01:44 +0100 Subject: [PATCH 1/4] chore: Make the testing framework excludes a convention plugin --- .../kotlin/datadog.configure-tests.gradle.kts | 23 ------------------- ...ntation.testing-framework-tests.gradle.kts | 23 +++++++++++++++++++ .../instrumentation/cucumber/build.gradle | 4 +++- .../junit/junit-4.10/build.gradle | 3 +-- .../junit-4.10/cucumber-junit-4/build.gradle | 2 -- .../junit/junit-4.10/junit-4.13/build.gradle | 4 +++- .../junit-4.10/munit-junit-4/build.gradle | 4 +++- .../junit/junit-5.3/build.gradle | 4 +++- .../junit-5.3/cucumber-junit-5/build.gradle | 4 +++- .../junit/junit-5.3/junit-5.8/build.gradle | 4 +++- .../junit-5.3/spock-junit-5/build.gradle | 4 +++- .../instrumentation/karate/build.gradle | 4 ++-- .../instrumentation/scalatest/build.gradle | 4 +++- .../instrumentation/selenium/build.gradle | 6 ++--- .../testng/testng-6/build.gradle | 3 +-- .../testng/testng-7/build.gradle | 5 +--- .../instrumentation/weaver/build.gradle | 2 -- 17 files changed, 54 insertions(+), 49 deletions(-) create mode 100644 buildSrc/src/main/kotlin/datadog.instrumentation.testing-framework-tests.gradle.kts diff --git a/buildSrc/src/main/kotlin/datadog.configure-tests.gradle.kts b/buildSrc/src/main/kotlin/datadog.configure-tests.gradle.kts index 6e1f4cdda92..f3a434856a2 100644 --- a/buildSrc/src/main/kotlin/datadog.configure-tests.gradle.kts +++ b/buildSrc/src/main/kotlin/datadog.configure-tests.gradle.kts @@ -7,10 +7,6 @@ import org.gradle.api.plugins.jvm.JvmTestSuite import java.time.Duration import java.time.temporal.ChronoUnit -val isTestingInstrumentation = providers.provider { - project.findProperty("testingInstrumentation") as? Boolean ?: false -} - // Need concrete implementation of BuildService in Kotlin abstract class ForkedTestLimit : BuildService // Forked tests will fail with OOM if the memory is set too high. Gitlab allows at least a limit of 3. @@ -43,25 +39,6 @@ tasks.withType().configureEach { !rootProject.providers.gradleProperty("rerun.tests.${project.name}").isPresent } - // Avoid executing classes used to test testing frameworks instrumentation - if (isTestingInstrumentation.get()) { - exclude("**/TestAssumption*", "**/TestSuiteSetUpAssumption*") - exclude("**/TestDisableTestTrace*") - exclude("**/TestError*") - exclude("**/TestFactory*") - exclude("**/TestFailed*") - exclude("**/TestFailedWithSuccessPercentage*") - exclude("**/TestInheritance*", "**/BaseTestInheritance*") - exclude("**/TestParameterized*") - exclude("**/TestRepeated*") - exclude("**/TestSkipped*") - exclude("**/TestSkippedClass*") - exclude("**/TestSucceed*") - exclude("**/TestTemplate*") - exclude("**/TestUnskippable*") - exclude("**/TestWithSetup*") - } - // Split up tests that want to run forked in their own separate JVM for generated tasks if (name.startsWith("forkedTest") || name.endsWith("ForkedTest")) { setExcludes(emptyList()) diff --git a/buildSrc/src/main/kotlin/datadog.instrumentation.testing-framework-tests.gradle.kts b/buildSrc/src/main/kotlin/datadog.instrumentation.testing-framework-tests.gradle.kts new file mode 100644 index 00000000000..0f2af6fb44a --- /dev/null +++ b/buildSrc/src/main/kotlin/datadog.instrumentation.testing-framework-tests.gradle.kts @@ -0,0 +1,23 @@ +plugins { + java +} + +logger.info("Avoid executing classes used to test testing frameworks instrumentation") + +tasks.withType().configureEach { + exclude("**/TestAssumption*", "**/TestSuiteSetUpAssumption*") + exclude("**/TestDisableTestTrace*") + exclude("**/TestError*") + exclude("**/TestFactory*") + exclude("**/TestFailed*") + exclude("**/TestFailedWithSuccessPercentage*") + exclude("**/TestInheritance*", "**/BaseTestInheritance*") + exclude("**/TestParameterized*") + exclude("**/TestRepeated*") + exclude("**/TestSkipped*") + exclude("**/TestSkippedClass*") + exclude("**/TestSucceed*") + exclude("**/TestTemplate*") + exclude("**/TestUnskippable*") + exclude("**/TestWithSetup*") +} diff --git a/dd-java-agent/instrumentation/cucumber/build.gradle b/dd-java-agent/instrumentation/cucumber/build.gradle index 4258244fb64..1d62a292e78 100644 --- a/dd-java-agent/instrumentation/cucumber/build.gradle +++ b/dd-java-agent/instrumentation/cucumber/build.gradle @@ -1,4 +1,6 @@ -ext.testingInstrumentation = true +plugins { + id 'datadog.instrumentation.testing-framework-tests' +} apply from: "$rootDir/gradle/java.gradle" diff --git a/dd-java-agent/instrumentation/junit/junit-4.10/build.gradle b/dd-java-agent/instrumentation/junit/junit-4.10/build.gradle index 99b4ef2e46c..e816b9aaf6e 100644 --- a/dd-java-agent/instrumentation/junit/junit-4.10/build.gradle +++ b/dd-java-agent/instrumentation/junit/junit-4.10/build.gradle @@ -3,10 +3,9 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinVersion plugins { id 'org.jetbrains.kotlin.jvm' + id 'datadog.instrumentation.testing-framework-tests' } -ext.testingInstrumentation = true - apply from: "$rootDir/gradle/java.gradle" apply from: "$rootDir/gradle/test-with-kotlin.gradle" diff --git a/dd-java-agent/instrumentation/junit/junit-4.10/cucumber-junit-4/build.gradle b/dd-java-agent/instrumentation/junit/junit-4.10/cucumber-junit-4/build.gradle index f5dc3d7ab87..0e528111889 100644 --- a/dd-java-agent/instrumentation/junit/junit-4.10/cucumber-junit-4/build.gradle +++ b/dd-java-agent/instrumentation/junit/junit-4.10/cucumber-junit-4/build.gradle @@ -1,5 +1,3 @@ -ext.testingInstrumentation = true - apply from: "$rootDir/gradle/java.gradle" muzzle { diff --git a/dd-java-agent/instrumentation/junit/junit-4.10/junit-4.13/build.gradle b/dd-java-agent/instrumentation/junit/junit-4.10/junit-4.13/build.gradle index ab2434265ac..ff709a3ef97 100644 --- a/dd-java-agent/instrumentation/junit/junit-4.10/junit-4.13/build.gradle +++ b/dd-java-agent/instrumentation/junit/junit-4.10/junit-4.13/build.gradle @@ -1,4 +1,6 @@ -ext.testingInstrumentation = true +plugins { + id 'datadog.instrumentation.testing-framework-tests' +} apply from: "$rootDir/gradle/java.gradle" diff --git a/dd-java-agent/instrumentation/junit/junit-4.10/munit-junit-4/build.gradle b/dd-java-agent/instrumentation/junit/junit-4.10/munit-junit-4/build.gradle index f5dc8befbc2..c269b82e7a6 100644 --- a/dd-java-agent/instrumentation/junit/junit-4.10/munit-junit-4/build.gradle +++ b/dd-java-agent/instrumentation/junit/junit-4.10/munit-junit-4/build.gradle @@ -1,4 +1,6 @@ -ext.testingInstrumentation = true +plugins { + id 'datadog.instrumentation.testing-framework-tests' +} apply from: "$rootDir/gradle/java.gradle" apply plugin: 'scala' diff --git a/dd-java-agent/instrumentation/junit/junit-5.3/build.gradle b/dd-java-agent/instrumentation/junit/junit-5.3/build.gradle index f5824c1a5d2..feaab2f37ff 100644 --- a/dd-java-agent/instrumentation/junit/junit-5.3/build.gradle +++ b/dd-java-agent/instrumentation/junit/junit-5.3/build.gradle @@ -1,4 +1,6 @@ -ext.testingInstrumentation = true +plugins { + id 'datadog.instrumentation.testing-framework-tests' +} apply from: "$rootDir/gradle/java.gradle" diff --git a/dd-java-agent/instrumentation/junit/junit-5.3/cucumber-junit-5/build.gradle b/dd-java-agent/instrumentation/junit/junit-5.3/cucumber-junit-5/build.gradle index c12695f5eba..77b613eeefb 100644 --- a/dd-java-agent/instrumentation/junit/junit-5.3/cucumber-junit-5/build.gradle +++ b/dd-java-agent/instrumentation/junit/junit-5.3/cucumber-junit-5/build.gradle @@ -1,4 +1,6 @@ -ext.testingInstrumentation = true +plugins { + id 'datadog.instrumentation.testing-framework-tests' +} apply from: "$rootDir/gradle/java.gradle" diff --git a/dd-java-agent/instrumentation/junit/junit-5.3/junit-5.8/build.gradle b/dd-java-agent/instrumentation/junit/junit-5.3/junit-5.8/build.gradle index de53979cab4..5f1711a3cba 100644 --- a/dd-java-agent/instrumentation/junit/junit-5.3/junit-5.8/build.gradle +++ b/dd-java-agent/instrumentation/junit/junit-5.3/junit-5.8/build.gradle @@ -1,4 +1,6 @@ -ext.testingInstrumentation = true +plugins { + id 'datadog.instrumentation.testing-framework-tests' +} apply from: "$rootDir/gradle/java.gradle" diff --git a/dd-java-agent/instrumentation/junit/junit-5.3/spock-junit-5/build.gradle b/dd-java-agent/instrumentation/junit/junit-5.3/spock-junit-5/build.gradle index 7e0a67c2b9c..ca5404400de 100644 --- a/dd-java-agent/instrumentation/junit/junit-5.3/spock-junit-5/build.gradle +++ b/dd-java-agent/instrumentation/junit/junit-5.3/spock-junit-5/build.gradle @@ -1,4 +1,6 @@ -ext.testingInstrumentation = true +plugins { + id 'datadog.instrumentation.testing-framework-tests' +} apply from: "$rootDir/gradle/java.gradle" diff --git a/dd-java-agent/instrumentation/karate/build.gradle b/dd-java-agent/instrumentation/karate/build.gradle index 97b7131df7f..5ad2bb73c14 100644 --- a/dd-java-agent/instrumentation/karate/build.gradle +++ b/dd-java-agent/instrumentation/karate/build.gradle @@ -1,5 +1,5 @@ -ext { - testingInstrumentation = true +plugins { + id 'datadog.instrumentation.testing-framework-tests' } apply from: "$rootDir/gradle/java.gradle" diff --git a/dd-java-agent/instrumentation/scalatest/build.gradle b/dd-java-agent/instrumentation/scalatest/build.gradle index 1c758f3862e..0041f84a9ae 100644 --- a/dd-java-agent/instrumentation/scalatest/build.gradle +++ b/dd-java-agent/instrumentation/scalatest/build.gradle @@ -1,4 +1,6 @@ -ext.testingInstrumentation = true +plugins { + id 'datadog.instrumentation.testing-framework-tests' +} apply from: "$rootDir/gradle/java.gradle" apply plugin: 'scala' diff --git a/dd-java-agent/instrumentation/selenium/build.gradle b/dd-java-agent/instrumentation/selenium/build.gradle index 02fcf9a77c6..3751cc5f06b 100644 --- a/dd-java-agent/instrumentation/selenium/build.gradle +++ b/dd-java-agent/instrumentation/selenium/build.gradle @@ -1,13 +1,11 @@ plugins { id 'java-test-fixtures' -} - -ext { - testingInstrumentation = true + id 'datadog.instrumentation.testing-framework-tests' } apply from: "$rootDir/gradle/java.gradle" + muzzle { pass { group = 'org.seleniumhq.selenium' diff --git a/dd-java-agent/instrumentation/testng/testng-6/build.gradle b/dd-java-agent/instrumentation/testng/testng-6/build.gradle index 8721f9107b8..7117127f59c 100644 --- a/dd-java-agent/instrumentation/testng/testng-6/build.gradle +++ b/dd-java-agent/instrumentation/testng/testng-6/build.gradle @@ -1,9 +1,8 @@ plugins { id 'java-test-fixtures' + id 'datadog.instrumentation.testing-framework-tests' } -ext.testingInstrumentation = true - apply from: "$rootDir/gradle/java.gradle" muzzle { diff --git a/dd-java-agent/instrumentation/testng/testng-7/build.gradle b/dd-java-agent/instrumentation/testng/testng-7/build.gradle index 0bedab6fcd9..548f2c48da8 100644 --- a/dd-java-agent/instrumentation/testng/testng-7/build.gradle +++ b/dd-java-agent/instrumentation/testng/testng-7/build.gradle @@ -1,9 +1,6 @@ plugins { id 'java-test-fixtures' -} - -ext { - testingInstrumentation = true + id 'datadog.instrumentation.testing-framework-tests' } apply from: "$rootDir/gradle/java.gradle" diff --git a/dd-java-agent/instrumentation/weaver/build.gradle b/dd-java-agent/instrumentation/weaver/build.gradle index fb392c43966..f763985c7a8 100644 --- a/dd-java-agent/instrumentation/weaver/build.gradle +++ b/dd-java-agent/instrumentation/weaver/build.gradle @@ -1,5 +1,3 @@ -ext.testingInstrumentation = true - apply from: "$rootDir/gradle/java.gradle" apply plugin: 'scala' From 56c3db706a9043b8482d45d28e9732d7c6287652 Mon Sep 17 00:00:00 2001 From: Brice Dutheil Date: Wed, 12 Nov 2025 18:17:23 +0100 Subject: [PATCH 2/4] fix: PR review --- .../junit/junit-4.10/cucumber-junit-4/build.gradle | 4 ++++ dd-java-agent/instrumentation/selenium/build.gradle | 1 - dd-java-agent/instrumentation/weaver/build.gradle | 4 ++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/dd-java-agent/instrumentation/junit/junit-4.10/cucumber-junit-4/build.gradle b/dd-java-agent/instrumentation/junit/junit-4.10/cucumber-junit-4/build.gradle index 0e528111889..d24849fa76c 100644 --- a/dd-java-agent/instrumentation/junit/junit-4.10/cucumber-junit-4/build.gradle +++ b/dd-java-agent/instrumentation/junit/junit-4.10/cucumber-junit-4/build.gradle @@ -1,3 +1,7 @@ +plugins { + id 'datadog.instrumentation.testing-framework-tests' +} + apply from: "$rootDir/gradle/java.gradle" muzzle { diff --git a/dd-java-agent/instrumentation/selenium/build.gradle b/dd-java-agent/instrumentation/selenium/build.gradle index 3751cc5f06b..d4b61ef822f 100644 --- a/dd-java-agent/instrumentation/selenium/build.gradle +++ b/dd-java-agent/instrumentation/selenium/build.gradle @@ -5,7 +5,6 @@ plugins { apply from: "$rootDir/gradle/java.gradle" - muzzle { pass { group = 'org.seleniumhq.selenium' diff --git a/dd-java-agent/instrumentation/weaver/build.gradle b/dd-java-agent/instrumentation/weaver/build.gradle index f763985c7a8..41cd569242d 100644 --- a/dd-java-agent/instrumentation/weaver/build.gradle +++ b/dd-java-agent/instrumentation/weaver/build.gradle @@ -1,3 +1,7 @@ +plugins { + id 'datadog.instrumentation.testing-framework-tests' +} + apply from: "$rootDir/gradle/java.gradle" apply plugin: 'scala' From 19ed192121b0e633e6bb792fbcb7e0888492aef8 Mon Sep 17 00:00:00 2001 From: Brice Dutheil Date: Thu, 13 Nov 2025 09:33:59 +0100 Subject: [PATCH 3/4] empty From a11fb7c07178398d65733cf64702852bb852b688 Mon Sep 17 00:00:00 2001 From: Brice Dutheil Date: Thu, 13 Nov 2025 13:45:59 +0100 Subject: [PATCH 4/4] empty