xref: /aosp_15_r20/external/grpc-grpc/src/proto/grpc/testing/BUILD (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
1# Copyright 2017 gRPC authors.
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
15load("@rules_proto//proto:defs.bzl", "proto_library")
16load("//bazel:grpc_build_system.bzl", "grpc_package", "grpc_proto_library")
17load("//bazel:python_rules.bzl", "py_grpc_library", "py_proto_library")
18
19licenses(["notice"])
20
21grpc_package(
22    name = "testing",
23    visibility = "public",
24)
25
26exports_files([
27    "echo.proto",
28    "echo_messages.proto",
29    "empty.proto",
30    "messages.proto",
31    "simple_messages.proto",
32    "test.proto",
33])
34
35grpc_proto_library(
36    name = "compiler_test_proto",
37    srcs = ["compiler_test.proto"],
38    generate_mocks = True,
39)
40
41grpc_proto_library(
42    name = "control_proto",
43    srcs = ["control.proto"],
44    has_services = False,
45    well_known_protos = True,
46    deps = [
47        "payloads_proto",
48        "stats_proto",
49    ],
50)
51
52grpc_proto_library(
53    name = "echo_messages_proto",
54    srcs = ["echo_messages.proto"],
55    deps = [
56        "//src/proto/grpc/testing/xds/v3:orca_load_report_proto",
57    ],
58)
59
60grpc_proto_library(
61    name = "echo_proto",
62    srcs = ["echo.proto"],
63    generate_mocks = True,
64    deps = [
65        "echo_messages_proto",
66        "simple_messages_proto",
67    ],
68)
69
70grpc_proto_library(
71    name = "empty_proto",
72    srcs = ["empty.proto"],
73    has_services = False,
74)
75
76proto_library(
77    name = "empty_proto_descriptor",
78    srcs = ["empty.proto"],
79)
80
81py_proto_library(
82    name = "empty_py_pb2",
83    deps = [":empty_proto_descriptor"],
84)
85
86py_grpc_library(
87    name = "empty_py_pb2_grpc",
88    srcs = [":empty_proto_descriptor"],
89    deps = [":empty_py_pb2"],
90)
91
92grpc_proto_library(
93    name = "messages_proto",
94    srcs = ["messages.proto"],
95    has_services = False,
96)
97
98proto_library(
99    name = "messages_proto_descriptor",
100    srcs = ["messages.proto"],
101)
102
103py_proto_library(
104    name = "py_messages_proto",
105    deps = [":messages_proto_descriptor"],
106)
107
108py_grpc_library(
109    name = "messages_py_pb2_grpc",
110    srcs = [":messages_proto_descriptor"],
111    deps = [":py_messages_proto"],
112)
113
114grpc_proto_library(
115    name = "metrics_proto",
116    srcs = ["metrics.proto"],
117)
118
119grpc_proto_library(
120    name = "payloads_proto",
121    srcs = ["payloads.proto"],
122    has_services = False,
123)
124
125grpc_proto_library(
126    name = "benchmark_service_proto",
127    srcs = ["benchmark_service.proto"],
128    deps = [
129        "messages_proto",
130    ],
131)
132
133proto_library(
134    name = "benchmark_service_descriptor",
135    srcs = ["benchmark_service.proto"],
136    deps = [":messages_proto_descriptor"],
137)
138
139py_proto_library(
140    name = "benchmark_service_py_pb2",
141    deps = [":benchmark_service_descriptor"],
142)
143
144py_grpc_library(
145    name = "benchmark_service_py_pb2_grpc",
146    srcs = [":benchmark_service_descriptor"],
147    deps = [":benchmark_service_py_pb2"],
148)
149
150grpc_proto_library(
151    name = "report_qps_scenario_service_proto",
152    srcs = ["report_qps_scenario_service.proto"],
153    deps = [
154        "control_proto",
155    ],
156)
157
158grpc_proto_library(
159    name = "worker_service_proto",
160    srcs = ["worker_service.proto"],
161    deps = [
162        "control_proto",
163    ],
164)
165
166grpc_proto_library(
167    name = "simple_messages_proto",
168    srcs = ["simple_messages.proto"],
169)
170
171grpc_proto_library(
172    name = "stats_proto",
173    srcs = ["stats.proto"],
174    has_services = False,
175)
176
177grpc_proto_library(
178    name = "test_proto",
179    srcs = ["test.proto"],
180    deps = [
181        "empty_proto",
182        "messages_proto",
183    ],
184)
185
186# Test that grpc_proto_library/cc_grpc_library can consume generated files
187genrule(
188    name = "messages_gen_proto_file",
189    srcs = ["messages.proto"],
190    outs = ["messages_gen.proto"],
191    cmd = "cp $< $@",
192)
193
194grpc_proto_library(
195    name = "messages_gen_proto",
196    srcs = ["messages_gen_proto_file"],
197    has_services = False,
198)
199
200genrule(
201    name = "test_gen_proto_file",
202    srcs = ["test.proto"],
203    outs = ["test_gen.proto"],
204    cmd = "sed 's/messages.proto/messages_gen.proto/' $< > $@",
205)
206
207# Consume generated files in srcs and in deps
208grpc_proto_library(
209    name = "test_gen_proto",
210    srcs = ["test_gen_proto_file"],
211    deps = [
212        "empty_proto",
213        "messages_gen_proto",
214    ],
215)
216
217proto_library(
218    name = "test_proto_descriptor",
219    srcs = ["test.proto"],
220    deps = [
221        ":empty_proto_descriptor",
222        ":messages_proto_descriptor",
223    ],
224)
225
226py_proto_library(
227    name = "py_test_proto",
228    deps = [":test_proto_descriptor"],
229)
230
231py_grpc_library(
232    name = "test_py_pb2_grpc",
233    srcs = [":test_proto_descriptor"],
234    deps = [":py_test_proto"],
235)
236
237proto_library(
238    name = "worker_service_descriptor",
239    srcs = ["worker_service.proto"],
240    deps = [":control_descriptor"],
241)
242
243py_proto_library(
244    name = "worker_service_py_pb2",
245    deps = [":worker_service_descriptor"],
246)
247
248py_grpc_library(
249    name = "worker_service_py_pb2_grpc",
250    srcs = [":worker_service_descriptor"],
251    deps = [":worker_service_py_pb2"],
252)
253
254proto_library(
255    name = "stats_descriptor",
256    srcs = ["stats.proto"],
257)
258
259py_proto_library(
260    name = "stats_py_pb2",
261    deps = [":stats_descriptor"],
262)
263
264proto_library(
265    name = "payloads_descriptor",
266    srcs = ["payloads.proto"],
267)
268
269py_proto_library(
270    name = "payloads_py_pb2",
271    deps = [":payloads_descriptor"],
272)
273
274proto_library(
275    name = "control_descriptor",
276    srcs = ["control.proto"],
277    deps = [
278        ":payloads_descriptor",
279        ":stats_descriptor",
280        "@com_google_protobuf//:timestamp_proto",
281    ],
282)
283
284py_proto_library(
285    name = "control_py_pb2",
286    deps = [":control_descriptor"],
287)
288
289grpc_proto_library(
290    name = "istio_echo_proto",
291    srcs = ["istio_echo.proto"],
292    well_known_protos = True,
293)
294