aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Schneider <norbert.schneider@code-intelligence.com>2023-06-12 13:10:24 +0200
committerNorbert Schneider <mail@bertschneider.de>2023-06-12 14:02:12 +0200
commitaaae641939818ec9e078c8f5e6dac5a686eacde9 (patch)
tree2d9d1907bff580234a7a400c7ce850eb20937dc9
parentfc0cb5df53abfdbeec805d3d6f1d4ff1e34f9615 (diff)
downloadjazzer-api-aaae641939818ec9e078c8f5e6dac5a686eacde9.tar.gz
Ignore JetBrains classes during instrumentation
Some JetBrains products interact badly with Jazzer's agent / instrumentation, e.g. their coverage agent. It's reasonable to ignore all JetBrains classes.
-rw-r--r--src/main/java/com/code_intelligence/jazzer/junit/AgentConfigurator.java2
-rw-r--r--src/main/java/com/code_intelligence/jazzer/utils/ClassNameGlobber.kt1
2 files changed, 2 insertions, 1 deletions
diff --git a/src/main/java/com/code_intelligence/jazzer/junit/AgentConfigurator.java b/src/main/java/com/code_intelligence/jazzer/junit/AgentConfigurator.java
index f662eb59..1f286a31 100644
--- a/src/main/java/com/code_intelligence/jazzer/junit/AgentConfigurator.java
+++ b/src/main/java/com/code_intelligence/jazzer/junit/AgentConfigurator.java
@@ -65,7 +65,7 @@ class AgentConfigurator {
// Do not hook common IDE and JUnit classes and their dependencies.
System.setProperty("jazzer.custom_hook_excludes",
String.join(File.pathSeparator, "com.google.testing.junit.**", "com.intellij.**",
- "io.github.classgraph.**", "junit.framework.**", "net.bytebuddy.**",
+ "org.jetbrains.**", "io.github.classgraph.**", "junit.framework.**", "net.bytebuddy.**",
"org.apiguardian.**", "org.assertj.core.**", "org.hamcrest.**", "org.junit.**",
"org.opentest4j.**", "org.mockito.**", "org.apache.maven.**", "org.gradle.**"));
}
diff --git a/src/main/java/com/code_intelligence/jazzer/utils/ClassNameGlobber.kt b/src/main/java/com/code_intelligence/jazzer/utils/ClassNameGlobber.kt
index ce45ea18..c6fa20a7 100644
--- a/src/main/java/com/code_intelligence/jazzer/utils/ClassNameGlobber.kt
+++ b/src/main/java/com/code_intelligence/jazzer/utils/ClassNameGlobber.kt
@@ -48,6 +48,7 @@ private val BASE_EXCLUDED_CLASS_NAME_GLOBS = listOf(
"org.junit.**", // dependency of @FuzzTest
"org.mockito.**", // can cause instrumentation cycles
"net.bytebuddy.**", // ignore Byte Buddy, though it's probably shaded
+ "org.jetbrains.**", // ignore JetBrains products (coverage agent)
) + if (IS_BAZEL_COVERAGE_RUN) ADDITIONAL_EXCLUDED_NAME_GLOBS_FOR_BAZEL_COVERAGE else listOf()
class ClassNameGlobber(includes: List<String>, excludes: List<String>) {