deploy: Generate Javadocs for jazzer-junit
Javadoc fails on neverlinked libraries. Since these libraries are
extremely small, it's not a problem to add them to the runtime
classpath.
Also reduces visibility of some classes that should not appear in the
Javadocs.
diff --git a/deploy/BUILD.bazel b/deploy/BUILD.bazel
index 6814ea7..3992fc8 100644
--- a/deploy/BUILD.bazel
+++ b/deploy/BUILD.bazel
@@ -16,8 +16,16 @@
name = "junit",
maven_coordinates = JAZZER_JUNIT_COORDINATES,
pom_template = "jazzer-junit.pom",
+ # Do not generate an implicit javadocs target - the current target is based on the shaded deploy
+ # JAR including all dependencies, which breaks javadoc.
+ tags = ["no-javadocs"],
visibility = ["//visibility:public"],
runtime_deps = [
"//driver/src/main/java/com/code_intelligence/jazzer/junit",
] + JAZZER_JUNIT_MAVEN_DEPS,
)
+
+alias(
+ name = "junit-javadocs",
+ actual = "//driver/src/main/java/com/code_intelligence/jazzer/junit:junit-docs",
+)
diff --git a/driver/src/main/java/com/code_intelligence/jazzer/BUILD.bazel b/driver/src/main/java/com/code_intelligence/jazzer/BUILD.bazel
index 5b631d5..d870499 100644
--- a/driver/src/main/java/com/code_intelligence/jazzer/BUILD.bazel
+++ b/driver/src/main/java/com/code_intelligence/jazzer/BUILD.bazel
@@ -15,6 +15,5 @@
java_library(
name = "constants",
srcs = [":constants_java"],
- neverlink = True,
visibility = ["//visibility:public"],
)
diff --git a/driver/src/main/java/com/code_intelligence/jazzer/junit/BUILD.bazel b/driver/src/main/java/com/code_intelligence/jazzer/junit/BUILD.bazel
index 3f824b1..006e040 100644
--- a/driver/src/main/java/com/code_intelligence/jazzer/junit/BUILD.bazel
+++ b/driver/src/main/java/com/code_intelligence/jazzer/junit/BUILD.bazel
@@ -1,10 +1,25 @@
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",
diff --git a/driver/src/main/java/com/code_intelligence/jazzer/junit/JazzerFuzzTestExecutor.java b/driver/src/main/java/com/code_intelligence/jazzer/junit/JazzerFuzzTestExecutor.java
index 150c0c9..1d05cde 100644
--- a/driver/src/main/java/com/code_intelligence/jazzer/junit/JazzerFuzzTestExecutor.java
+++ b/driver/src/main/java/com/code_intelligence/jazzer/junit/JazzerFuzzTestExecutor.java
@@ -39,7 +39,7 @@
import org.junit.platform.engine.TestExecutionResult;
import org.junit.platform.engine.reporting.ReportEntry;
-public class JazzerFuzzTestExecutor {
+class JazzerFuzzTestExecutor {
private static final AtomicBoolean hasExecutedOnce = new AtomicBoolean();
private final ExecutionRequest request;
diff --git a/driver/src/main/java/com/code_intelligence/jazzer/junit/JazzerTestEngine.java b/driver/src/main/java/com/code_intelligence/jazzer/junit/JazzerTestEngine.java
index 5f3141e..8cbd8f0 100644
--- a/driver/src/main/java/com/code_intelligence/jazzer/junit/JazzerTestEngine.java
+++ b/driver/src/main/java/com/code_intelligence/jazzer/junit/JazzerTestEngine.java
@@ -39,7 +39,7 @@
import org.junit.platform.engine.support.descriptor.EngineDescriptor;
public class JazzerTestEngine implements TestEngine {
- public static class JazzerSetupError extends Error {
+ static class JazzerSetupError extends Error {
public JazzerSetupError(Throwable e) {
super("Jazzer fuzz test failed to execute", e);
}
@@ -48,7 +48,7 @@
}
}
- public static class JazzerFuzzTestDescriptor extends AbstractTestDescriptor {
+ static class JazzerFuzzTestDescriptor extends AbstractTestDescriptor {
private final Method method;
public JazzerFuzzTestDescriptor(UniqueId uniqueId, Method method) {