blob: 006e0404f80e321644afb17fed690d7295981baf [file] [log] [blame]
load("@com_github_johnynek_bazel_jar_jar//:jar_jar.bzl", "jar_jar")
load("@fmeum_rules_jni//jni:defs.bzl", "java_jni_library")
load("@rules_jvm_external//:defs.bzl", "javadoc")
load("//bazel:compat.bzl", "SKIP_ON_WINDOWS")
load("//bazel:jar.bzl", "strip_jar")
load("//:maven.bzl", "JAZZER_JUNIT_MAVEN_DEPS")
load("//sanitizers:sanitizers.bzl", "SANITIZER_CLASSES")
javadoc(
name = "junit-docs",
visibility = ["//deploy:__pkg__"],
deps = [
":agent_configurator",
":fuzz_test",
":jazzer_test_engine",
":utils",
"//agent/src/main/java/com/code_intelligence/jazzer/api",
],
)
jar_jar(
name = "junit_shaded",
# The Jazzer JUnit integration without its dependencies declared in the pom.xml.
jar_jar(
name = "junit",
input_jar = "junit_stripped.jar",
rules = "junit_shade_rules",
visibility = ["//visibility:public"],
)
# :junit together with all its Maven dependencies.
java_import(
name = "junit_for_testing",
testonly = True,
jars = [
"junit.jar",
"junit_maven_deps_deploy.jar",
],
visibility = ["//visibility:public"],
)
strip_jar(
name = "junit_stripped",
out = "junit_stripped.jar",
jar = "junit_unshaded_deploy.jar",
paths_to_strip = [
"module-info.class",
],
)
java_binary(
name = "junit_unshaded",
create_executable = False,
deploy_env = [":junit_maven_deps"],
runtime_deps = [
":fuzz_test",
":jazzer_test_engine",
],
)
java_binary(
name = "junit_maven_deps",
create_executable = False,
runtime_deps = JAZZER_JUNIT_MAVEN_DEPS,
)
sh_test(
name = "junit_shading_test",
srcs = ["verify_shading.sh"],
args = [
"$(rootpath junit.jar)",
],
data = [
"junit.jar",
"@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_library(
name = "agent_configurator",
srcs = [
"AgentConfigurator.java",
],
deps = [
":utils",
"//sanitizers:sanitizer_constants",
"@maven//:org_junit_jupiter_junit_jupiter_api",
"@maven//:org_junit_platform_junit_platform_engine",
],
)
java_jni_library(
name = "fuzz_test",
srcs = [
"FuzzTest.java",
"RegressionTestArgumentProvider.java",
"RegressionTestExtensions.java",
],
native_libs = [
"//driver/src/main/native/com/code_intelligence/jazzer/driver:jazzer_driver",
],
visibility = [
"//examples/junit/src/test/java/com/example:__pkg__",
],
deps = [
":agent_configurator",
":utils",
"//agent/src/main/java/com/code_intelligence/jazzer/agent:agent_installer",
"//agent/src/main/java/com/code_intelligence/jazzer/api",
"//driver/src/main/java/com/code_intelligence/jazzer/autofuzz",
"//driver/src/main/java/com/code_intelligence/jazzer/driver:fuzzed_data_provider_impl",
"@maven//:org_junit_jupiter_junit_jupiter_api",
"@maven//:org_junit_jupiter_junit_jupiter_params",
"@maven//:org_junit_platform_junit_platform_commons",
],
)
java_library(
name = "jazzer_test_engine",
srcs = [
"JazzerFuzzTestExecutor.java",
"JazzerTestEngine.java",
],
resources = [
"//driver/src/main/resources:jazzer_test_engine_service",
],
deps = [
":agent_configurator",
":fuzz_test",
":utils",
"//agent/src/main/java/com/code_intelligence/jazzer/agent:agent_installer",
"//agent/src/main/java/com/code_intelligence/jazzer/api",
"//agent/src/main/java/com/code_intelligence/jazzer/utils",
"//driver/src/main/java/com/code_intelligence/jazzer:constants",
"//driver/src/main/java/com/code_intelligence/jazzer/driver:fuzz_target_runner",
"@maven//:org_junit_jupiter_junit_jupiter_api",
"@maven//:org_junit_platform_junit_platform_commons",
"@maven//:org_junit_platform_junit_platform_engine",
],
)
java_library(
name = "utils",
srcs = ["Utils.java"],
)