1// Copyright 2020 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//      http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package {
16    default_team: "trendy_team_automotive",
17    default_applicable_licenses: ["Android-Apache-2.0"],
18}
19
20cc_library_static {
21    name: "libcomputepipeprotosfuzz",
22    proto: {
23        export_proto_headers: true,
24    },
25    shared_libs: ["libprotobuf-cpp-full"],
26    cflags: [
27        "-Wall",
28        "-Werror",
29        "-Wno-unused-parameter",
30    ],
31    srcs: [
32        "Fuzz.proto",
33    ],
34}
35
36cc_defaults {
37    name: "libcomputepipefuzz-defaults",
38    cflags: [
39        "-Wall",
40        "-Werror",
41        "-Wno-unused-parameter",
42        "-Wno-unused-variable",
43    ],
44    static_libs: [
45        "computepipe_runner_component",
46        "computepipe_runner_engine",
47        "computepipe_stream_manager",
48        "computepipe_input_manager",
49        "libcomputepipeprotos",
50        "libgtest",
51        "libgmock",
52        "mock_stream_engine_interface",
53    ],
54    shared_libs: [
55        "libbase",
56        "liblog",
57        "libnativewindow",
58        "libmediandk",
59        "libprotobuf-cpp-lite",
60    ],
61    header_libs: [
62        "computepipe_runner_includes",
63        "graph_test_headers",
64    ],
65    include_dirs: [
66        "packages/services/Car/cpp/computepipe",
67        "packages/services/Car/cpp/computepipe/runner/stream_manager",
68        "packages/services/Car/cpp/computepipe/runner/input_manager",
69        "packages/services/Car/cpp/computepipe/runner/input_manager/include",
70        "packages/services/Car/cpp/computepipe/runner/engine",
71        "packages/services/Car/cpp/computepipe/runner/debug_display_manager/include",
72        "packages/services/Car/cpp/computepipe/runner/client_interface/include/",
73        "packages/services/Car/cpp/computepipe/runner/graph/include/",
74    ],
75
76    fuzz_config: {
77        cc: [
78            "aae-engprod-fuzz@google.com",
79            "kathan@google.com",
80        ],
81        // Android > Automotive > Embedded > Test Bugs
82        componentid: 162915,
83        // aae-fuzz-bugs
84        hotlists: ["1986127"],
85        libfuzzer_options: [
86            "timeout=120",
87        ],
88    },
89}
90
91cc_fuzz {
92    name: "computepipe_pixel_mem_handle_fuzzer",
93    defaults: ["libcomputepipefuzz-defaults"],
94    srcs: [
95        "PixelMemHandleFuzzer.cpp",
96    ],
97    shared_libs: [
98        "libprotobuf-cpp-full",
99    ],
100    static_libs: [
101        "libcomputepipeprotosfuzz",
102        "libprotobuf-mutator",
103    ],
104}
105
106cc_fuzz {
107    name: "computepipe_pixel_stream_manager_fuzzer",
108    defaults: ["libcomputepipefuzz-defaults"],
109    srcs: [
110        "PixelStreamManagerFuzzer.cpp",
111    ],
112    shared_libs: [
113        "libprotobuf-cpp-full",
114    ],
115    static_libs: [
116        "libcomputepipeprotosfuzz",
117        "libprotobuf-mutator",
118    ],
119}
120
121cc_fuzz {
122    name: "computepipe_semantic_manager_fuzzer",
123    defaults: ["libcomputepipefuzz-defaults"],
124    srcs: [
125        "SemanticManagerFuzzer.cpp",
126    ],
127}
128
129cc_fuzz {
130    name: "video_input_manager_fuzzer",
131    defaults: ["libcomputepipefuzz-defaults"],
132    cppflags: [
133        "-fexceptions",
134    ],
135    srcs: [
136        "VideoInputManagerFuzzer.cpp",
137    ],
138    data: [
139        "corpus/video_input_manager/*",
140    ],
141}
142
143cc_fuzz {
144    name: "local_prebuild_graph_fuzzer",
145    defaults: ["libcomputepipefuzz-defaults"],
146    cppflags: [
147        "-fexceptions",
148    ],
149    static_libs: [
150        "computepipe_prebuilt_graph",
151    ],
152    shared_libs: [
153        "libstubgraphimpl",
154    ],
155    include_dirs: [
156        "packages/services/Car/cpp/computepipe",
157        "packages/services/Car/cpp/computepipe/runner/graph",
158    ],
159    srcs: [
160        "LocalPrebuildGraphFuzzer.cpp",
161    ],
162}
163
164cc_fuzz {
165    name: "grpc_graph_fuzzer",
166    defaults: ["libcomputepipefuzz-defaults"],
167    cppflags: [
168        "-fexceptions",
169    ],
170    static_libs: [
171        "computepipe_grpc_graph_proto",
172        "computepipe_grpc_graph",
173    ],
174    shared_libs: [
175        "libgrpc++",
176        "libprotobuf-cpp-full",
177    ],
178    include_dirs: [
179        "packages/services/Car/cpp/computepipe",
180        "packages/services/Car/cpp/computepipe/runner/graph",
181    ],
182    srcs: [
183        "GrpcGraphFuzzer.cpp",
184    ],
185}
186