aboutsummaryrefslogtreecommitdiff
path: root/agent/BUILD.bazel
diff options
context:
space:
mode:
Diffstat (limited to 'agent/BUILD.bazel')
-rw-r--r--agent/BUILD.bazel39
1 files changed, 35 insertions, 4 deletions
diff --git a/agent/BUILD.bazel b/agent/BUILD.bazel
index ddafc246..aedbe424 100644
--- a/agent/BUILD.bazel
+++ b/agent/BUILD.bazel
@@ -1,4 +1,6 @@
load("@com_github_johnynek_bazel_jar_jar//:jar_jar.bzl", "jar_jar")
+load("//bazel:compat.bzl", "SKIP_ON_WINDOWS")
+load("//bazel:jar.bzl", "strip_jar")
load("//sanitizers:sanitizers.bzl", "SANITIZER_CLASSES")
java_binary(
@@ -6,19 +8,48 @@ java_binary(
create_executable = False,
deploy_manifest_lines = [
"Premain-Class: com.code_intelligence.jazzer.agent.Agent",
- "Jazzer-Hook-Classes: {}".format(":".join(SANITIZER_CLASSES)),
- ],
+ "Can-Retransform-Classes: true",
+ "Jazzer-Hook-Classes: ",
+ ] + [" {}:".format(c) for c in SANITIZER_CLASSES],
runtime_deps = [
"//agent/src/main/java/com/code_intelligence/jazzer/agent:agent_lib",
+ "//driver/src/main/java/com/code_intelligence/jazzer/driver",
"//sanitizers",
],
)
-jar_jar(
+strip_jar(
name = "jazzer_agent_deploy",
+ out = "jazzer_agent_deploy.jar",
+ jar = ":jazzer_agent_shaded_deploy",
+ paths_to_strip = [
+ "module-info.class",
+ ],
+ visibility = ["//visibility:public"],
+)
+
+jar_jar(
+ name = "jazzer_agent_shaded_deploy",
input_jar = "jazzer_agent_unshaded_deploy.jar",
rules = "agent_shade_rules",
- visibility = ["//visibility:public"],
+)
+
+sh_test(
+ name = "jazzer_agent_shading_test",
+ srcs = ["verify_shading.sh"],
+ args = [
+ "$(rootpath :jazzer_agent_deploy)",
+ ],
+ data = [
+ ":jazzer_agent_deploy",
+ "@local_jdk//:bin/jar",
+ ],
+ tags = [
+ # Coverage instrumentation necessarily adds files to the jar that we
+ # wouldn't want to release and thus causes this test to fail.
+ "no-coverage",
+ ],
+ target_compatible_with = SKIP_ON_WINDOWS,
)
java_binary(