aboutsummaryrefslogtreecommitdiff
path: root/agent/src/main/java/com/code_intelligence/jazzer/generated/BUILD.bazel
diff options
context:
space:
mode:
Diffstat (limited to 'agent/src/main/java/com/code_intelligence/jazzer/generated/BUILD.bazel')
-rw-r--r--agent/src/main/java/com/code_intelligence/jazzer/generated/BUILD.bazel40
1 files changed, 40 insertions, 0 deletions
diff --git a/agent/src/main/java/com/code_intelligence/jazzer/generated/BUILD.bazel b/agent/src/main/java/com/code_intelligence/jazzer/generated/BUILD.bazel
new file mode 100644
index 00000000..fceda64c
--- /dev/null
+++ b/agent/src/main/java/com/code_intelligence/jazzer/generated/BUILD.bazel
@@ -0,0 +1,40 @@
+java_binary(
+ name = "NoThrowDoclet",
+ srcs = ["NoThrowDoclet.java"],
+ create_executable = False,
+ tags = ["manual"],
+)
+
+# To regenerate the list of methods, ensure that your local JDK is as recent as possible and contains `lib/src.zip`.
+# This will be the case if you are using the release binaries of the OpenJDK or if the `openjdk-<version>-source`
+# package is installed.
+# Then, execute
+# agent/src/main/java/com/code_intelligence/jazzer/generated/update_java_no_throw_methods_list.sh
+# from the Bazel root and copy the file into
+# org.jacoco.core/src/org/jacoco/core/internal/flow/java_no_throw_methods_list.dat
+# in the CodeIntelligenceTesting/jacoco repository.
+genrule(
+ name = "java_no_throw_methods_list",
+ srcs = [
+ "@local_jdk//:lib/src.zip",
+ ],
+ outs = [
+ "java_no_throw_methods_list.dat.generated",
+ ],
+ cmd = """
+ TMP=$$(mktemp -d) && \
+ unzip $(execpath @local_jdk//:lib/src.zip) -d $$TMP && \
+ $(execpath @local_jdk//:bin/javadoc) \
+ -doclet com.code_intelligence.jazzer.generated.NoThrowDoclet \
+ -docletpath $(execpath :NoThrowDoclet_deploy.jar) \
+ --module java.base \
+ --source-path $$TMP/java.base \
+ --out $@ && \
+ sort -o $@ $@ && \
+ rm -rf $$TMP""",
+ tags = ["manual"],
+ tools = [
+ ":NoThrowDoclet_deploy.jar",
+ "@local_jdk//:bin/javadoc",
+ ],
+)