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", ], )