• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1load("@fmeum_rules_jni//jni:defs.bzl", "java_jni_library")
2load("//src/jmh/java/com/code_intelligence/jazzer:jmh.bzl", "JMH_TEST_ARGS")
3
4java_binary(
5    name = "FuzzerCallbacksBenchmark",
6    main_class = "org.openjdk.jmh.Main",
7    runtime_deps = [
8        ":fuzzer_callbacks_benchmark",
9    ],
10)
11
12java_test(
13    name = "FuzzerCallbacksBenchmarkTest",
14    args = JMH_TEST_ARGS,
15    main_class = "org.openjdk.jmh.Main",
16    # CriticalJNINatives have been removed in Java 18.
17    tags = [
18        "exclusive-if-local",
19        "no-linux-jdk19",
20    ],
21    # Directly invoke JMH's main without using a testrunner.
22    use_testrunner = False,
23    runtime_deps = [
24        ":fuzzer_callbacks_benchmark",
25    ],
26)
27
28java_library(
29    name = "fuzzer_callbacks_benchmark",
30    srcs = ["FuzzerCallbacksBenchmark.java"],
31    plugins = ["//src/jmh/java/com/code_intelligence/jazzer:JmhGeneratorAnnotationProcessor"],
32    deps = [
33        ":fuzzer_callbacks",
34        "@maven//:org_openjdk_jmh_jmh_core",
35    ],
36)
37
38java_jni_library(
39    name = "fuzzer_callbacks",
40    srcs = [
41        "FuzzerCallbacks.java",
42        "FuzzerCallbacksOptimizedCritical.java",
43        "FuzzerCallbacksOptimizedNonCritical.java",
44        # Uncomment to benchmark Project Panama-backed implementation (requires JDK 16+).
45        #        "FuzzerCallbacksPanama.java",
46        "FuzzerCallbacksWithPc.java",
47    ],
48    javacopts = [
49        # Uncomment to benchmark Project Panama-backed implementation (requires JDK 16+).
50        #        "--add-modules",
51        #        "jdk.incubator.foreign",
52    ],
53    native_libs = ["//src/jmh/native/com/code_intelligence/jazzer/runtime:fuzzer_callbacks"],
54    visibility = ["//src/jmh/native/com/code_intelligence/jazzer/runtime:__pkg__"],
55)
56