aboutsummaryrefslogtreecommitdiff
path: root/examples/junit/src/test/java/com/example/BUILD.bazel
diff options
context:
space:
mode:
Diffstat (limited to 'examples/junit/src/test/java/com/example/BUILD.bazel')
-rw-r--r--examples/junit/src/test/java/com/example/BUILD.bazel232
1 files changed, 232 insertions, 0 deletions
diff --git a/examples/junit/src/test/java/com/example/BUILD.bazel b/examples/junit/src/test/java/com/example/BUILD.bazel
new file mode 100644
index 00000000..8bbdcecd
--- /dev/null
+++ b/examples/junit/src/test/java/com/example/BUILD.bazel
@@ -0,0 +1,232 @@
+load("//bazel:fuzz_target.bzl", "java_fuzz_target_test")
+
+java_binary(
+ name = "ExampleFuzzTests",
+ testonly = True,
+ srcs = glob(["*.java"]),
+ create_executable = False,
+ visibility = [
+ "//src/test/java/com/code_intelligence/jazzer/junit:__pkg__",
+ ],
+ deps = [
+ "//deploy:jazzer",
+ "//deploy:jazzer-api",
+ "//deploy:jazzer-junit",
+ "//examples/junit/src/main/java/com/example:parser",
+ "//examples/junit/src/test/resources:example_seed_corpora",
+ "@maven//:org_junit_jupiter_junit_jupiter_api",
+ "@maven//:org_junit_jupiter_junit_jupiter_params",
+ "@maven//:org_mockito_mockito_core",
+ ],
+)
+
+java_fuzz_target_test(
+ name = "DataFuzzTest",
+ srcs = ["ValidFuzzTests.java"],
+ allowed_findings = ["com.code_intelligence.jazzer.api.FuzzerSecurityIssueMedium"],
+ fuzzer_args = [
+ "-runs=0",
+ ],
+ target_class = "com.example.ValidFuzzTests",
+ target_method = "dataFuzz",
+ verify_crash_reproducer = False,
+ runtime_deps = [
+ ":junit_runtime",
+ ],
+ deps = [
+ "//examples/junit/src/main/java/com/example:parser",
+ "//src/main/java/com/code_intelligence/jazzer/junit:fuzz_test",
+ "@maven//:org_junit_jupiter_junit_jupiter_api",
+ ],
+)
+
+java_fuzz_target_test(
+ name = "ByteFuzzTest",
+ srcs = ["ByteFuzzTest.java"],
+ allowed_findings = ["org.opentest4j.AssertionFailedError"],
+ fuzzer_args = [
+ "-runs=0",
+ ],
+ target_class = "com.example.ByteFuzzTest",
+ target_method = "byteFuzz",
+ verify_crash_reproducer = False,
+ runtime_deps = [
+ ":junit_runtime",
+ ],
+ deps = [
+ "//examples/junit/src/main/java/com/example:parser",
+ "//src/main/java/com/code_intelligence/jazzer/junit:fuzz_test",
+ "@maven//:org_junit_jupiter_junit_jupiter_api",
+ ],
+)
+
+java_fuzz_target_test(
+ name = "LifecycleFuzzTest",
+ srcs = ["LifecycleFuzzTest.java"],
+ allowed_findings = ["java.io.IOException"],
+ fuzzer_args = [
+ "-runs=0",
+ ],
+ target_class = "com.example.LifecycleFuzzTest",
+ verify_crash_reproducer = False,
+ runtime_deps = [
+ ":junit_runtime",
+ ],
+ deps = [
+ "//examples/junit/src/main/java/com/example:parser",
+ "//src/main/java/com/code_intelligence/jazzer/junit:fuzz_test",
+ "@maven//:org_junit_jupiter_junit_jupiter_api",
+ ],
+)
+
+java_fuzz_target_test(
+ name = "KeepGoingFuzzTest",
+ srcs = ["KeepGoingFuzzTest.java"],
+ allowed_findings = ["java.lang.IllegalArgumentException"],
+ expect_crash = False,
+ fuzzer_args = [
+ "--keep_going=3",
+ "-runs=10",
+ ],
+ target_class = "com.example.KeepGoingFuzzTest",
+ runtime_deps = [
+ ":junit_runtime",
+ ],
+ deps = [
+ "//src/main/java/com/code_intelligence/jazzer/junit:fuzz_test",
+ "@maven//:org_junit_jupiter_junit_jupiter_api",
+ ],
+)
+
+# Verifies that fuzzer command-line arguments are honored for @FuzzTests.
+java_fuzz_target_test(
+ name = "CommandLineFuzzTest",
+ srcs = ["CommandLineFuzzTest.java"],
+ allowed_findings = ["java.lang.Error"],
+ fuzzer_args = [
+ # Ignore the first two findings.
+ "--ignore=d5e250a5298b81e6,d86371e6d41739ec",
+ ],
+ target_class = "com.example.CommandLineFuzzTest",
+ verify_crash_reproducer = False,
+ runtime_deps = [
+ ":junit_runtime",
+ ],
+ deps = [
+ "//examples/junit/src/main/java/com/example:parser",
+ "//src/main/java/com/code_intelligence/jazzer/junit:fuzz_test",
+ "@maven//:org_junit_jupiter_junit_jupiter_api",
+ ],
+)
+
+# Verify that Mockito is properly ignored.
+# Using version 5+ could otherwise introduce cyclic instrumentation.
+java_fuzz_target_test(
+ name = "MockitoFuzzTest",
+ srcs = ["MockitoFuzzTest.java"],
+ fuzzer_args = [
+ "-runs=1",
+ ],
+ tags = ["no-jdk8"],
+ target_class = "com.example.MockitoFuzzTest",
+ verify_crash_reproducer = False,
+ runtime_deps = [
+ ":junit_runtime",
+ ],
+ deps = [
+ "//examples/junit/src/main/java/com/example:parser",
+ "//src/main/java/com/code_intelligence/jazzer/junit:fuzz_test",
+ "@maven//:org_junit_jupiter_junit_jupiter_api",
+ "@maven//:org_mockito_mockito_core",
+ ],
+)
+
+java_fuzz_target_test(
+ name = "AutofuzzLifecycleFuzzTest",
+ srcs = ["AutofuzzLifecycleFuzzTest.java"],
+ fuzzer_args = [
+ "-runs=0",
+ ],
+ target_class = "com.example.AutofuzzLifecycleFuzzTest",
+ verify_crash_reproducer = False,
+ runtime_deps = [
+ ":junit_runtime",
+ ],
+ deps = [
+ "//src/main/java/com/code_intelligence/jazzer/junit:fuzz_test",
+ "@maven//:org_junit_jupiter_junit_jupiter_api",
+ ],
+)
+
+java_fuzz_target_test(
+ name = "MutatorFuzzTest",
+ srcs = ["MutatorFuzzTest.java"],
+ allowed_findings = ["java.lang.AssertionError"],
+ data = [
+ "//examples/junit/src/test/resources:MutatorFuzzTestInputs",
+ ],
+ env = {
+ "JAZZER_FUZZ": "1",
+ },
+ fuzzer_args = [
+ "--experimental_mutator",
+ "$(rlocationpaths //examples/junit/src/test/resources:MutatorFuzzTestInputs)",
+ ],
+ target_class = "com.example.MutatorFuzzTest",
+ verify_crash_reproducer = False,
+ runtime_deps = [
+ ":junit_runtime",
+ ],
+ deps = [
+ "//src/main/java/com/code_intelligence/jazzer/driver:fuzz_target_runner",
+ "//src/main/java/com/code_intelligence/jazzer/junit:fuzz_test",
+ "//src/main/java/com/code_intelligence/jazzer/mutation/annotation",
+ "@maven//:org_junit_jupiter_junit_jupiter_api",
+ ],
+)
+
+java_fuzz_target_test(
+ name = "JavaSeedFuzzTest",
+ srcs = ["JavaSeedFuzzTest.java"],
+ allowed_findings = ["java.lang.Error"],
+ env = {"JAZZER_FUZZ": "1"},
+ fuzzer_args = [
+ "--experimental_mutator",
+ ],
+ target_class = "com.example.JavaSeedFuzzTest",
+ verify_crash_reproducer = False,
+ runtime_deps = [
+ ":junit_runtime",
+ ],
+ deps = [
+ "//src/main/java/com/code_intelligence/jazzer/junit:fuzz_test",
+ "//src/main/java/com/code_intelligence/jazzer/mutation/annotation",
+ "@maven//:org_junit_jupiter_junit_jupiter_api",
+ "@maven//:org_junit_jupiter_junit_jupiter_params",
+ ],
+)
+
+java_fuzz_target_test(
+ name = "JavaBinarySeedFuzzTest",
+ srcs = ["JavaBinarySeedFuzzTest.java"],
+ allowed_findings = ["java.lang.Error"],
+ env = {"JAZZER_FUZZ": "1"},
+ target_class = "com.example.JavaBinarySeedFuzzTest",
+ verify_crash_reproducer = False,
+ runtime_deps = [
+ ":junit_runtime",
+ ],
+ deps = [
+ "//src/main/java/com/code_intelligence/jazzer/junit:fuzz_test",
+ "@maven//:org_junit_jupiter_junit_jupiter_api",
+ "@maven//:org_junit_jupiter_junit_jupiter_params",
+ ],
+)
+
+java_library(
+ name = "junit_runtime",
+ runtime_deps = [
+ "@maven//:org_junit_jupiter_junit_jupiter_engine",
+ "@maven//:org_junit_platform_junit_platform_launcher",
+ ],
+)