blob: 48e4af4406d9011ae3624ce4d90ce9d72ce5f31c [file] [log] [blame]
load("@fmeum_rules_jni//jni:defs.bzl", "java_jni_library")
load("@io_bazel_rules_kotlin//kotlin:jvm.bzl", "kt_jvm_library")
load("//bazel:kotlin.bzl", "ktlint")
java_library(
name = "constants",
srcs = ["Constants.java"],
visibility = ["//src/main/java/com/code_intelligence/jazzer/driver:__subpackages__"],
)
java_library(
name = "driver",
srcs = ["Driver.java"],
visibility = [
"//src/main/java/com/code_intelligence/jazzer:__pkg__",
],
deps = [
":fuzz_target_finder",
":fuzz_target_holder",
":fuzz_target_runner",
":offline_instrumentor",
":opt",
"//src/main/java/com/code_intelligence/jazzer/agent:agent_installer",
"//src/main/java/com/code_intelligence/jazzer/driver/junit:junit_runner",
"//src/main/java/com/code_intelligence/jazzer/runtime:constants",
"//src/main/java/com/code_intelligence/jazzer/utils:log",
],
)
java_library(
name = "offline_instrumentor",
srcs = ["OfflineInstrumentor.java"],
visibility = [
"//src/main/java/com/code_intelligence/jazzer:__pkg__",
],
deps = [
":opt",
"//src/main/java/com/code_intelligence/jazzer/agent:agent_installer",
"//src/main/java/com/code_intelligence/jazzer/utils:log",
"//src/main/java/com/code_intelligence/jazzer/utils:zip_utils",
],
)
kt_jvm_library(
name = "exception_utils",
srcs = ["ExceptionUtils.kt"],
visibility = ["//src/main/java/com/code_intelligence/jazzer/driver:__subpackages__"],
deps = [
":opt",
"//src/main/java/com/code_intelligence/jazzer/api:hooks",
"//src/main/java/com/code_intelligence/jazzer/runtime:constants",
"//src/main/java/com/code_intelligence/jazzer/utils:log",
],
)
java_library(
name = "fuzz_target_finder",
srcs = ["FuzzTargetFinder.java"],
visibility = ["//src/test/java/com/code_intelligence/jazzer/driver:__pkg__"],
deps = [
":fuzz_target_holder",
":opt",
"//src/main/java/com/code_intelligence/jazzer/api",
"//src/main/java/com/code_intelligence/jazzer/runtime:constants",
"//src/main/java/com/code_intelligence/jazzer/utils:log",
"//src/main/java/com/code_intelligence/jazzer/utils:manifest_utils",
],
)
java_library(
name = "fuzz_target_holder",
srcs = ["FuzzTargetHolder.java"],
visibility = [
"//src/main/java/com/code_intelligence/jazzer/junit:__pkg__",
"//src/test/java/com/code_intelligence/jazzer/driver:__pkg__",
],
deps = [
":opt",
"//src/main/java/com/code_intelligence/jazzer/api",
"//src/main/java/com/code_intelligence/jazzer/autofuzz",
],
)
java_jni_library(
name = "fuzz_target_runner",
srcs = ["FuzzTargetRunner.java"],
# This library is loaded by the classes in the agent runtime package as it needs to be available
# in the bootstrap class loader. It is packaged here rather than in jazzer_boostrap.jar since
# the bootstrap class loader doesn't support resources.
native_libs = [
"//src/main/native/com/code_intelligence/jazzer/driver:jazzer_driver",
],
visibility = [
"//examples/junit/src/test/java/com/example:__pkg__",
"//src/main/java/com/code_intelligence/jazzer/driver/junit:__pkg__",
"//src/main/java/com/code_intelligence/jazzer/junit:__pkg__",
"//src/test:__subpackages__",
],
deps = [
":constants",
":exception_utils",
":fuzz_target_holder",
":fuzzed_data_provider_impl",
":opt",
":recording_fuzzed_data_provider",
":reproducer_template",
":signal_handler",
"//src/main/java/com/code_intelligence/jazzer/api",
"//src/main/java/com/code_intelligence/jazzer/autofuzz",
"//src/main/java/com/code_intelligence/jazzer/instrumentor",
"//src/main/java/com/code_intelligence/jazzer/mutation",
"//src/main/java/com/code_intelligence/jazzer/runtime:constants",
"//src/main/java/com/code_intelligence/jazzer/runtime:jazzer_bootstrap_compile_only",
"//src/main/java/com/code_intelligence/jazzer/utils:log",
"//src/main/java/com/code_intelligence/jazzer/utils:manifest_utils",
"//src/main/java/com/code_intelligence/jazzer/utils:unsafe_provider",
],
)
java_jni_library(
name = "fuzzed_data_provider_impl",
srcs = ["FuzzedDataProviderImpl.java"],
native_libs = ["//src/main/native/com/code_intelligence/jazzer/driver:jazzer_fuzzed_data_provider"],
visibility = [
"//src:__subpackages__",
],
deps = [
"//src/main/java/com/code_intelligence/jazzer/api",
"//src/main/java/com/code_intelligence/jazzer/utils:unsafe_provider",
],
)
java_library(
name = "reproducer_template",
srcs = ["ReproducerTemplate.java"],
resources = ["Reproducer.java.tmpl"],
deps = [
":opt",
"//src/main/java/com/code_intelligence/jazzer/utils:log",
],
)
java_library(
name = "opt",
srcs = [
"Opt.java",
"OptParser.java",
],
visibility = [
"//src/main/java/com/code_intelligence/jazzer/agent:__pkg__",
"//src/main/java/com/code_intelligence/jazzer/driver:__subpackages__",
"//src/main/java/com/code_intelligence/jazzer/junit:__pkg__",
"//src/test/java/com/code_intelligence/jazzer/driver:__subpackages__",
],
deps = [
"//src/main/java/com/code_intelligence/jazzer:constants",
"//src/main/java/com/code_intelligence/jazzer/utils:log",
],
)
java_library(
name = "recording_fuzzed_data_provider",
srcs = ["RecordingFuzzedDataProvider.java"],
visibility = ["//src/test/java/com/code_intelligence/jazzer/driver:__pkg__"],
deps = ["//src/main/java/com/code_intelligence/jazzer/api"],
)
java_jni_library(
name = "signal_handler",
srcs = ["SignalHandler.java"],
native_libs = ["//src/main/native/com/code_intelligence/jazzer/driver:jazzer_signal_handler"],
visibility = ["//src/main/native/com/code_intelligence/jazzer/driver:__pkg__"],
deps = [":opt"],
)
ktlint()