diff options
Diffstat (limited to 'agent/BUILD.bazel')
-rw-r--r-- | agent/BUILD.bazel | 39 |
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( |