1load("@fmeum_rules_jni//jni:defs.bzl", "java_jni_library") 2load("@io_bazel_rules_kotlin//kotlin:jvm.bzl", "kt_jvm_library") 3load("//bazel:kotlin.bzl", "ktlint") 4 5java_library( 6 name = "constants", 7 srcs = ["Constants.java"], 8 visibility = ["//src/main/java/com/code_intelligence/jazzer/driver:__subpackages__"], 9) 10 11java_library( 12 name = "driver", 13 srcs = ["Driver.java"], 14 visibility = [ 15 "//src/main/java/com/code_intelligence/jazzer:__pkg__", 16 ], 17 deps = [ 18 ":fuzz_target_finder", 19 ":fuzz_target_holder", 20 ":fuzz_target_runner", 21 ":offline_instrumentor", 22 ":opt", 23 "//src/main/java/com/code_intelligence/jazzer/agent:agent_installer", 24 "//src/main/java/com/code_intelligence/jazzer/android:android_runtime", 25 "//src/main/java/com/code_intelligence/jazzer/driver/junit:junit_runner", 26 "//src/main/java/com/code_intelligence/jazzer/runtime:constants", 27 "//src/main/java/com/code_intelligence/jazzer/utils:log", 28 ], 29) 30 31java_library( 32 name = "offline_instrumentor", 33 srcs = ["OfflineInstrumentor.java"], 34 visibility = [ 35 "//src/main/java/com/code_intelligence/jazzer:__pkg__", 36 ], 37 deps = [ 38 ":opt", 39 "//src/main/java/com/code_intelligence/jazzer/agent:agent_installer", 40 "//src/main/java/com/code_intelligence/jazzer/utils:log", 41 "//src/main/java/com/code_intelligence/jazzer/utils:zip_utils", 42 ], 43) 44 45kt_jvm_library( 46 name = "exception_utils", 47 srcs = ["ExceptionUtils.kt"], 48 visibility = ["//src/main/java/com/code_intelligence/jazzer/driver:__subpackages__"], 49 deps = [ 50 ":opt", 51 "//src/main/java/com/code_intelligence/jazzer/api:hooks", 52 "//src/main/java/com/code_intelligence/jazzer/runtime:constants", 53 "//src/main/java/com/code_intelligence/jazzer/utils:log", 54 ], 55) 56 57java_library( 58 name = "fuzz_target_finder", 59 srcs = ["FuzzTargetFinder.java"], 60 visibility = ["//src/test/java/com/code_intelligence/jazzer/driver:__pkg__"], 61 deps = [ 62 ":fuzz_target_holder", 63 ":opt", 64 "//src/main/java/com/code_intelligence/jazzer/api", 65 "//src/main/java/com/code_intelligence/jazzer/runtime:constants", 66 "//src/main/java/com/code_intelligence/jazzer/utils:log", 67 "//src/main/java/com/code_intelligence/jazzer/utils:manifest_utils", 68 ], 69) 70 71java_library( 72 name = "fuzz_target_holder", 73 srcs = ["FuzzTargetHolder.java"], 74 visibility = [ 75 "//src/main/java/com/code_intelligence/jazzer/junit:__pkg__", 76 "//src/test/java/com/code_intelligence/jazzer/driver:__pkg__", 77 ], 78 deps = [ 79 ":opt", 80 "//src/main/java/com/code_intelligence/jazzer/api", 81 "//src/main/java/com/code_intelligence/jazzer/autofuzz", 82 ], 83) 84 85java_jni_library( 86 name = "fuzz_target_runner", 87 srcs = ["FuzzTargetRunner.java"], 88 # This library is loaded by the classes in the agent runtime package as it needs to be available 89 # in the bootstrap class loader. It is packaged here rather than in jazzer_boostrap.jar since 90 # the bootstrap class loader doesn't support resources. 91 native_libs = [ 92 "//src/main/native/com/code_intelligence/jazzer/driver:jazzer_driver", 93 ], 94 visibility = [ 95 "//examples/junit/src/test/java/com/example:__pkg__", 96 "//src/main/java/com/code_intelligence/jazzer/driver/junit:__pkg__", 97 "//src/main/java/com/code_intelligence/jazzer/junit:__pkg__", 98 "//src/test:__subpackages__", 99 ], 100 deps = [ 101 ":constants", 102 ":exception_utils", 103 ":fuzz_target_holder", 104 ":fuzzed_data_provider_impl", 105 ":opt", 106 ":recording_fuzzed_data_provider", 107 ":reproducer_template", 108 ":signal_handler", 109 "//src/main/java/com/code_intelligence/jazzer/api", 110 "//src/main/java/com/code_intelligence/jazzer/autofuzz", 111 "//src/main/java/com/code_intelligence/jazzer/instrumentor", 112 "//src/main/java/com/code_intelligence/jazzer/mutation", 113 "//src/main/java/com/code_intelligence/jazzer/runtime:constants", 114 "//src/main/java/com/code_intelligence/jazzer/runtime:jazzer_bootstrap_compile_only", 115 "//src/main/java/com/code_intelligence/jazzer/utils:log", 116 "//src/main/java/com/code_intelligence/jazzer/utils:manifest_utils", 117 "//src/main/java/com/code_intelligence/jazzer/utils:unsafe_provider", 118 ], 119) 120 121java_jni_library( 122 name = "fuzzed_data_provider_impl", 123 srcs = ["FuzzedDataProviderImpl.java"], 124 native_libs = ["//src/main/native/com/code_intelligence/jazzer/driver:jazzer_fuzzed_data_provider"], 125 visibility = [ 126 "//src:__subpackages__", 127 ], 128 deps = [ 129 "//src/main/java/com/code_intelligence/jazzer/api", 130 "//src/main/java/com/code_intelligence/jazzer/utils:unsafe_provider", 131 ], 132) 133 134java_library( 135 name = "reproducer_template", 136 srcs = ["ReproducerTemplate.java"], 137 resources = ["Reproducer.java.tmpl"], 138 deps = [ 139 ":opt", 140 "//src/main/java/com/code_intelligence/jazzer/utils:log", 141 ], 142) 143 144java_library( 145 name = "opt", 146 srcs = [ 147 "Opt.java", 148 "OptParser.java", 149 ], 150 visibility = [ 151 "//src/main/java/com/code_intelligence/jazzer/agent:__pkg__", 152 "//src/main/java/com/code_intelligence/jazzer/driver:__subpackages__", 153 "//src/main/java/com/code_intelligence/jazzer/junit:__pkg__", 154 "//src/test/java/com/code_intelligence/jazzer/driver:__subpackages__", 155 ], 156 deps = [ 157 "//src/main/java/com/code_intelligence/jazzer:constants", 158 "//src/main/java/com/code_intelligence/jazzer/utils:log", 159 ], 160) 161 162java_library( 163 name = "recording_fuzzed_data_provider", 164 srcs = ["RecordingFuzzedDataProvider.java"], 165 visibility = ["//src/test/java/com/code_intelligence/jazzer/driver:__pkg__"], 166 deps = ["//src/main/java/com/code_intelligence/jazzer/api"], 167) 168 169java_jni_library( 170 name = "signal_handler", 171 srcs = ["SignalHandler.java"], 172 native_libs = ["//src/main/native/com/code_intelligence/jazzer/driver:jazzer_signal_handler"], 173 visibility = ["//src/main/native/com/code_intelligence/jazzer/driver:__pkg__"], 174 deps = [":opt"], 175) 176 177ktlint() 178