From 9fe9944f89547b835d18c9a2ed2e3a32aacebee3 Mon Sep 17 00:00:00 2001 From: Nikita Tkachenko Date: Mon, 7 Apr 2025 13:52:52 +0200 Subject: [PATCH] Do not apply JUnit 4 instrumentation to MUnit runners --- .../trace/instrumentation/junit4/JUnit4Instrumentation.java | 4 ++++ .../datadog/trace/instrumentation/junit4/JUnit4Utils.java | 2 ++ 2 files changed, 6 insertions(+) diff --git a/dd-java-agent/instrumentation/junit-4.10/src/main/java/datadog/trace/instrumentation/junit4/JUnit4Instrumentation.java b/dd-java-agent/instrumentation/junit-4.10/src/main/java/datadog/trace/instrumentation/junit4/JUnit4Instrumentation.java index dec5a8b7d16..884b92f903c 100644 --- a/dd-java-agent/instrumentation/junit-4.10/src/main/java/datadog/trace/instrumentation/junit4/JUnit4Instrumentation.java +++ b/dd-java-agent/instrumentation/junit-4.10/src/main/java/datadog/trace/instrumentation/junit4/JUnit4Instrumentation.java @@ -2,6 +2,7 @@ import static datadog.trace.agent.tooling.bytebuddy.matcher.HierarchyMatchers.extendsClass; import static datadog.trace.agent.tooling.bytebuddy.matcher.HierarchyMatchers.implementsInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.nameStartsWith; import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.isConstructor; import static net.bytebuddy.matcher.ElementMatchers.not; @@ -54,6 +55,9 @@ public ElementMatcher hierarchyMatcher() { // do not instrument Karate JUnit 4 runner // since Karate has a dedicated instrumentation .and(not(extendsClass(named("com.intuit.karate.junit4.Karate")))) + // do not instrument MUnit-JUnit 4 interface runner + // since MUnit has a dedicated instrumentation + .and(not(extendsClass(nameStartsWith("munit.internal.junitinterface.")))) // PowerMock runner is being instrumented, // so do not instrument its internal delegates .and( diff --git a/dd-java-agent/instrumentation/junit-4.10/src/main/java/datadog/trace/instrumentation/junit4/JUnit4Utils.java b/dd-java-agent/instrumentation/junit-4.10/src/main/java/datadog/trace/instrumentation/junit4/JUnit4Utils.java index 8d3d3c18bd0..d491a72a756 100644 --- a/dd-java-agent/instrumentation/junit-4.10/src/main/java/datadog/trace/instrumentation/junit4/JUnit4Utils.java +++ b/dd-java-agent/instrumentation/junit-4.10/src/main/java/datadog/trace/instrumentation/junit4/JUnit4Utils.java @@ -348,6 +348,8 @@ public static TestFrameworkInstrumentation runnerToFramework(Runner runner) { return TestFrameworkInstrumentation.KARATE; } else if (runnerClassName.startsWith("io.cucumber")) { return TestFrameworkInstrumentation.CUCUMBER; + } else if (runnerClassName.startsWith("munit.internal.junitinterface")) { + return TestFrameworkInstrumentation.MUNIT; } else { return TestFrameworkInstrumentation.JUNIT4; }