• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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