1load("//bazel:fuzz_target.bzl", "java_fuzz_target_test") 2 3java_binary( 4 name = "ExampleFuzzTests", 5 testonly = True, 6 srcs = glob(["*.java"]), 7 create_executable = False, 8 visibility = [ 9 "//src/test/java/com/code_intelligence/jazzer/junit:__pkg__", 10 ], 11 deps = [ 12 "//deploy:jazzer", 13 "//deploy:jazzer-api", 14 "//deploy:jazzer-junit", 15 "//examples/junit/src/main/java/com/example:parser", 16 "//examples/junit/src/test/resources:example_seed_corpora", 17 "@maven//:org_junit_jupiter_junit_jupiter_api", 18 "@maven//:org_junit_jupiter_junit_jupiter_params", 19 "@maven//:org_mockito_mockito_core", 20 ], 21) 22 23java_fuzz_target_test( 24 name = "DataFuzzTest", 25 srcs = ["ValidFuzzTests.java"], 26 allowed_findings = ["com.code_intelligence.jazzer.api.FuzzerSecurityIssueMedium"], 27 fuzzer_args = [ 28 "-runs=0", 29 ], 30 target_class = "com.example.ValidFuzzTests", 31 target_method = "dataFuzz", 32 verify_crash_reproducer = False, 33 runtime_deps = [ 34 ":junit_runtime", 35 ], 36 deps = [ 37 "//examples/junit/src/main/java/com/example:parser", 38 "//src/main/java/com/code_intelligence/jazzer/junit:fuzz_test", 39 "@maven//:org_junit_jupiter_junit_jupiter_api", 40 ], 41) 42 43java_fuzz_target_test( 44 name = "ByteFuzzTest", 45 srcs = ["ByteFuzzTest.java"], 46 allowed_findings = ["org.opentest4j.AssertionFailedError"], 47 fuzzer_args = [ 48 "-runs=0", 49 ], 50 target_class = "com.example.ByteFuzzTest", 51 target_method = "byteFuzz", 52 verify_crash_reproducer = False, 53 runtime_deps = [ 54 ":junit_runtime", 55 ], 56 deps = [ 57 "//examples/junit/src/main/java/com/example:parser", 58 "//src/main/java/com/code_intelligence/jazzer/junit:fuzz_test", 59 "@maven//:org_junit_jupiter_junit_jupiter_api", 60 ], 61) 62 63java_fuzz_target_test( 64 name = "LifecycleFuzzTest", 65 srcs = ["LifecycleFuzzTest.java"], 66 allowed_findings = ["java.io.IOException"], 67 fuzzer_args = [ 68 "-runs=0", 69 ], 70 target_class = "com.example.LifecycleFuzzTest", 71 verify_crash_reproducer = False, 72 runtime_deps = [ 73 ":junit_runtime", 74 ], 75 deps = [ 76 "//examples/junit/src/main/java/com/example:parser", 77 "//src/main/java/com/code_intelligence/jazzer/junit:fuzz_test", 78 "@maven//:org_junit_jupiter_junit_jupiter_api", 79 ], 80) 81 82java_fuzz_target_test( 83 name = "KeepGoingFuzzTest", 84 srcs = ["KeepGoingFuzzTest.java"], 85 allowed_findings = ["java.lang.IllegalArgumentException"], 86 expect_crash = False, 87 fuzzer_args = [ 88 "--keep_going=3", 89 "-runs=10", 90 ], 91 target_class = "com.example.KeepGoingFuzzTest", 92 runtime_deps = [ 93 ":junit_runtime", 94 ], 95 deps = [ 96 "//src/main/java/com/code_intelligence/jazzer/junit:fuzz_test", 97 "@maven//:org_junit_jupiter_junit_jupiter_api", 98 ], 99) 100 101# Verifies that fuzzer command-line arguments are honored for @FuzzTests. 102java_fuzz_target_test( 103 name = "CommandLineFuzzTest", 104 srcs = ["CommandLineFuzzTest.java"], 105 allowed_findings = ["java.lang.Error"], 106 fuzzer_args = [ 107 # Ignore the first two findings. 108 "--ignore=d5e250a5298b81e6,d86371e6d41739ec", 109 ], 110 target_class = "com.example.CommandLineFuzzTest", 111 verify_crash_reproducer = False, 112 runtime_deps = [ 113 ":junit_runtime", 114 ], 115 deps = [ 116 "//examples/junit/src/main/java/com/example:parser", 117 "//src/main/java/com/code_intelligence/jazzer/junit:fuzz_test", 118 "@maven//:org_junit_jupiter_junit_jupiter_api", 119 ], 120) 121 122# Verify that Mockito is properly ignored. 123# Using version 5+ could otherwise introduce cyclic instrumentation. 124java_fuzz_target_test( 125 name = "MockitoFuzzTest", 126 srcs = ["MockitoFuzzTest.java"], 127 fuzzer_args = [ 128 "-runs=1", 129 ], 130 tags = ["no-jdk8"], 131 target_class = "com.example.MockitoFuzzTest", 132 verify_crash_reproducer = False, 133 runtime_deps = [ 134 ":junit_runtime", 135 ], 136 deps = [ 137 "//examples/junit/src/main/java/com/example:parser", 138 "//src/main/java/com/code_intelligence/jazzer/junit:fuzz_test", 139 "@maven//:org_junit_jupiter_junit_jupiter_api", 140 "@maven//:org_mockito_mockito_core", 141 ], 142) 143 144java_fuzz_target_test( 145 name = "AutofuzzLifecycleFuzzTest", 146 srcs = ["AutofuzzLifecycleFuzzTest.java"], 147 fuzzer_args = [ 148 "-runs=0", 149 ], 150 target_class = "com.example.AutofuzzLifecycleFuzzTest", 151 verify_crash_reproducer = False, 152 runtime_deps = [ 153 ":junit_runtime", 154 ], 155 deps = [ 156 "//src/main/java/com/code_intelligence/jazzer/junit:fuzz_test", 157 "@maven//:org_junit_jupiter_junit_jupiter_api", 158 ], 159) 160 161java_fuzz_target_test( 162 name = "MutatorFuzzTest", 163 srcs = ["MutatorFuzzTest.java"], 164 allowed_findings = ["java.lang.AssertionError"], 165 data = [ 166 "//examples/junit/src/test/resources:MutatorFuzzTestInputs", 167 ], 168 env = { 169 "JAZZER_FUZZ": "1", 170 }, 171 fuzzer_args = [ 172 "--experimental_mutator", 173 "$(rlocationpaths //examples/junit/src/test/resources:MutatorFuzzTestInputs)", 174 ], 175 target_class = "com.example.MutatorFuzzTest", 176 verify_crash_reproducer = False, 177 runtime_deps = [ 178 ":junit_runtime", 179 ], 180 deps = [ 181 "//src/main/java/com/code_intelligence/jazzer/driver:fuzz_target_runner", 182 "//src/main/java/com/code_intelligence/jazzer/junit:fuzz_test", 183 "//src/main/java/com/code_intelligence/jazzer/mutation/annotation", 184 "@maven//:org_junit_jupiter_junit_jupiter_api", 185 ], 186) 187 188java_fuzz_target_test( 189 name = "JavaSeedFuzzTest", 190 srcs = ["JavaSeedFuzzTest.java"], 191 allowed_findings = ["java.lang.Error"], 192 env = {"JAZZER_FUZZ": "1"}, 193 fuzzer_args = [ 194 "--experimental_mutator", 195 ], 196 target_class = "com.example.JavaSeedFuzzTest", 197 verify_crash_reproducer = False, 198 runtime_deps = [ 199 ":junit_runtime", 200 ], 201 deps = [ 202 "//src/main/java/com/code_intelligence/jazzer/junit:fuzz_test", 203 "//src/main/java/com/code_intelligence/jazzer/mutation/annotation", 204 "@maven//:org_junit_jupiter_junit_jupiter_api", 205 "@maven//:org_junit_jupiter_junit_jupiter_params", 206 ], 207) 208 209java_fuzz_target_test( 210 name = "JavaBinarySeedFuzzTest", 211 srcs = ["JavaBinarySeedFuzzTest.java"], 212 allowed_findings = ["java.lang.Error"], 213 env = {"JAZZER_FUZZ": "1"}, 214 target_class = "com.example.JavaBinarySeedFuzzTest", 215 verify_crash_reproducer = False, 216 runtime_deps = [ 217 ":junit_runtime", 218 ], 219 deps = [ 220 "//src/main/java/com/code_intelligence/jazzer/junit:fuzz_test", 221 "@maven//:org_junit_jupiter_junit_jupiter_api", 222 "@maven//:org_junit_jupiter_junit_jupiter_params", 223 ], 224) 225 226java_library( 227 name = "junit_runtime", 228 runtime_deps = [ 229 "@maven//:org_junit_jupiter_junit_jupiter_engine", 230 "@maven//:org_junit_platform_junit_platform_launcher", 231 ], 232) 233