diff options
Diffstat (limited to 'examples/junit/src/test/java/com/example/BUILD.bazel')
-rw-r--r-- | examples/junit/src/test/java/com/example/BUILD.bazel | 232 |
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", + ], +) |