xref: /aosp_15_r20/external/jazzer-api/launcher/BUILD.bazel (revision 33edd6723662ea34453766bfdca85dbfdd5342b8)
1*33edd672SMarkload("@build_bazel_apple_support//rules:universal_binary.bzl", "universal_binary")
2*33edd672SMark
3*33edd672SMarkcc_library(
4*33edd672SMark    name = "jazzer_main",
5*33edd672SMark    srcs = ["jazzer_main.cpp"],
6*33edd672SMark    deps = [
7*33edd672SMark        ":jvm_tooling_lib",
8*33edd672SMark        "@com_google_absl//absl/strings",
9*33edd672SMark        "@fmeum_rules_jni//jni:libjvm",
10*33edd672SMark    ],
11*33edd672SMark)
12*33edd672SMark
13*33edd672SMarkcc_library(
14*33edd672SMark    name = "jvm_tooling_lib",
15*33edd672SMark    srcs = ["jvm_tooling.cpp"],
16*33edd672SMark    hdrs = ["jvm_tooling.h"],
17*33edd672SMark    data = [
18*33edd672SMark        "//src/main/java/com/code_intelligence/jazzer:jazzer_standalone_deploy.jar",
19*33edd672SMark    ],
20*33edd672SMark    linkopts = select({
21*33edd672SMark        "@platforms//os:android": ["-ldl"],
22*33edd672SMark        "//conditions:default": [],
23*33edd672SMark    }),
24*33edd672SMark    deps = [
25*33edd672SMark        "@bazel_tools//tools/cpp/runfiles",
26*33edd672SMark        "@com_google_absl//absl/strings",
27*33edd672SMark        "@com_google_absl//absl/strings:str_format",
28*33edd672SMark        "@fmeum_rules_jni//jni",
29*33edd672SMark    ],
30*33edd672SMark)
31*33edd672SMark
32*33edd672SMarkcc_binary(
33*33edd672SMark    name = "jazzer_single_arch",
34*33edd672SMark    linkstatic = True,
35*33edd672SMark    tags = ["manual"],
36*33edd672SMark    visibility = ["//launcher/android:__pkg__"],
37*33edd672SMark    deps = [":jazzer_main"],
38*33edd672SMark)
39*33edd672SMark
40*33edd672SMark# On macOS, builds a binary that supports both x86_64 and arm64.
41*33edd672SMark# On all other platforms, it just symlinks the input binary.
42*33edd672SMarkuniversal_binary(
43*33edd672SMark    name = "jazzer",
44*33edd672SMark    binary = ":jazzer_single_arch",
45*33edd672SMark    visibility = ["//visibility:public"],
46*33edd672SMark)
47*33edd672SMark
48*33edd672SMarkcc_test(
49*33edd672SMark    name = "jvm_tooling_test",
50*33edd672SMark    size = "small",
51*33edd672SMark    srcs = ["jvm_tooling_test.cpp"],
52*33edd672SMark    data = [
53*33edd672SMark        "//launcher/testdata:fuzz_target_mocks_deploy.jar",
54*33edd672SMark    ],
55*33edd672SMark    env = {
56*33edd672SMark        "JAVA_OPTS": "-Djazzer.hooks=false",
57*33edd672SMark    },
58*33edd672SMark    includes = ["."],
59*33edd672SMark    deps = [
60*33edd672SMark        ":jvm_tooling_lib",
61*33edd672SMark        ":test_main",
62*33edd672SMark        "@bazel_tools//tools/cpp/runfiles",
63*33edd672SMark        "@googletest//:gtest",
64*33edd672SMark    ],
65*33edd672SMark)
66*33edd672SMark
67*33edd672SMarkcc_test(
68*33edd672SMark    name = "fuzzed_data_provider_test",
69*33edd672SMark    size = "medium",
70*33edd672SMark    srcs = ["fuzzed_data_provider_test.cpp"],
71*33edd672SMark    copts = select({
72*33edd672SMark        "@platforms//os:windows": ["/std:c++17"],
73*33edd672SMark        "//conditions:default": ["-std=c++17"],
74*33edd672SMark    }),
75*33edd672SMark    data = [
76*33edd672SMark        "//launcher/testdata:fuzz_target_mocks_deploy.jar",
77*33edd672SMark    ],
78*33edd672SMark    env = {
79*33edd672SMark        "JAVA_OPTS": "-Djazzer.hooks=false",
80*33edd672SMark    },
81*33edd672SMark    includes = ["."],
82*33edd672SMark    deps = [
83*33edd672SMark        ":jvm_tooling_lib",
84*33edd672SMark        ":test_main",
85*33edd672SMark        "//src/main/native/com/code_intelligence/jazzer/driver:fuzzed_data_provider",
86*33edd672SMark        "@bazel_tools//tools/cpp/runfiles",
87*33edd672SMark        "@googletest//:gtest",
88*33edd672SMark    ],
89*33edd672SMark)
90*33edd672SMark
91*33edd672SMarkcc_library(
92*33edd672SMark    name = "test_main",
93*33edd672SMark    srcs = ["test_main.cpp"],
94*33edd672SMark    linkstatic = True,
95*33edd672SMark    deps = [
96*33edd672SMark        "@fmeum_rules_jni//jni:libjvm",
97*33edd672SMark        "@googletest//:gtest",
98*33edd672SMark    ],
99*33edd672SMark)
100