aboutsummaryrefslogtreecommitdiff
path: root/agent
diff options
context:
space:
mode:
authorFabian Meumertzheim <meumertzheim@code-intelligence.com>2021-10-18 17:41:45 +0200
committerFabian Meumertzheim <fabian@meumertzhe.im>2021-10-19 11:07:51 +0200
commit908ee7f9505c684b0f6ddd66165af079d9aea315 (patch)
tree67854d6367890e62492c0d3de60683b78245293d /agent
parent2fca962f0a38c5f8e3606f501bc28f9435e4b751 (diff)
downloadjazzer-api-908ee7f9505c684b0f6ddd66165af079d9aea315.tar.gz
Do not find our own classes
This could pretty wild AutofillErrors.
Diffstat (limited to 'agent')
-rw-r--r--agent/src/main/java/com/code_intelligence/jazzer/autofuzz/Meta.java14
-rw-r--r--agent/src/test/java/com/code_intelligence/jazzer/autofuzz/BUILD.bazel4
2 files changed, 16 insertions, 2 deletions
diff --git a/agent/src/main/java/com/code_intelligence/jazzer/autofuzz/Meta.java b/agent/src/main/java/com/code_intelligence/jazzer/autofuzz/Meta.java
index 54a4a4fe..246ec9ea 100644
--- a/agent/src/main/java/com/code_intelligence/jazzer/autofuzz/Meta.java
+++ b/agent/src/main/java/com/code_intelligence/jazzer/autofuzz/Meta.java
@@ -144,8 +144,13 @@ public class Meta {
} else if (type.isInterface() || Modifier.isAbstract(type.getModifiers())) {
List<Class<?>> implementingClasses = implementingClassesCache.get(type);
if (implementingClasses == null) {
- try (ScanResult result =
- new ClassGraph().enableClassInfo().enableInterClassDependencies().scan()) {
+ ClassGraph classGraph =
+ new ClassGraph().enableClassInfo().enableInterClassDependencies().rejectPackages(
+ "jaz.*");
+ if (!isTest()) {
+ classGraph.rejectPackages("com.code_intelligence.jazzer.*");
+ }
+ try (ScanResult result = classGraph.scan()) {
ClassInfoList children =
type.isInterface() ? result.getClassesImplementing(type) : result.getSubclasses(type);
implementingClasses =
@@ -225,6 +230,11 @@ public class Meta {
}
}
+ static boolean isTest() {
+ String value = System.getenv("JAZZER_AUTOFUZZ_TESTING");
+ return value != null && !value.isEmpty();
+ }
+
static boolean isDebug() {
String value = System.getenv("JAZZER_AUTOFUZZ_DEBUG");
return value != null && !value.isEmpty();
diff --git a/agent/src/test/java/com/code_intelligence/jazzer/autofuzz/BUILD.bazel b/agent/src/test/java/com/code_intelligence/jazzer/autofuzz/BUILD.bazel
index cc71e09d..2414c470 100644
--- a/agent/src/test/java/com/code_intelligence/jazzer/autofuzz/BUILD.bazel
+++ b/agent/src/test/java/com/code_intelligence/jazzer/autofuzz/BUILD.bazel
@@ -21,6 +21,10 @@ java_test(
srcs = [
"InterfaceCreationTest.java",
],
+ env = {
+ # Also consider implementing classes from com.code_intelligence.jazzer.*.
+ "JAZZER_AUTOFUZZ_TESTING": "1",
+ },
test_class = "com.code_intelligence.jazzer.autofuzz.InterfaceCreationTest",
deps = [
"//agent/src/main/java/com/code_intelligence/jazzer/api",