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