xref: /aosp_15_r20/external/grpc-grpc/test/cpp/interop/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("//bazel:grpc_build_system.bzl", "grpc_cc_binary", "grpc_cc_library", "grpc_cc_test", "grpc_package")
16
17licenses(["notice"])
18
19grpc_package(
20    name = "test/cpp/interop",
21    visibility = "public",
22)
23
24grpc_cc_library(
25    name = "server_helper_lib",
26    srcs = [
27        "server_helper.cc",
28    ],
29    hdrs = [
30        "server_helper.h",
31    ],
32    external_deps = [
33        "absl/flags:flag",
34    ],
35    language = "C++",
36    deps = [
37        "//test/cpp/util:test_util",
38    ],
39)
40
41grpc_cc_binary(
42    name = "grpclb_fallback_test",
43    srcs = [
44        "grpclb_fallback_test.cc",
45    ],
46    external_deps = [
47        "absl/flags:flag",
48        "absl/time:time",
49    ],
50    language = "C++",
51    tags = ["no_windows"],
52    deps = [
53        "//:grpc++",
54        "//src/proto/grpc/testing:empty_proto",
55        "//src/proto/grpc/testing:messages_proto",
56        "//src/proto/grpc/testing:test_proto",
57        "//test/cpp/util:test_config",
58        "//test/cpp/util:test_util",
59    ],
60)
61
62grpc_cc_binary(
63    name = "interop_server",
64    srcs = [
65        "interop_server_bootstrap.cc",
66    ],
67    external_deps = [
68        "absl/flags:flag",
69    ],
70    language = "C++",
71    deps = [
72        ":interop_server_lib",
73        "//:grpc++",
74        "//test/cpp/util:test_util",
75    ],
76)
77
78grpc_cc_library(
79    name = "interop_server_lib",
80    srcs = [
81        "interop_server.cc",
82    ],
83    language = "C++",
84    deps = [
85        ":server_helper_lib",
86        "//:grpcpp_orca_service",
87        "//src/proto/grpc/testing:empty_proto",
88        "//src/proto/grpc/testing:messages_proto",
89        "//src/proto/grpc/testing:test_proto",
90        "//test/cpp/util:test_config",
91    ],
92)
93
94grpc_cc_library(
95    name = "client_helper_lib",
96    srcs = [
97        "client_helper.cc",
98        "interop_client.cc",
99    ],
100    hdrs = [
101        "client_helper.h",
102        "interop_client.h",
103    ],
104    external_deps = [
105        "absl/flags:flag",
106    ],
107    language = "C++",
108    deps = [
109        ":backend_metrics_lb_policy",
110        "//src/proto/grpc/testing:empty_proto",
111        "//src/proto/grpc/testing:messages_proto",
112        "//src/proto/grpc/testing:test_proto",
113        "//test/core/security:oauth2_utils",
114        "//test/cpp/util:test_config",
115        "//test/cpp/util:test_util",
116    ],
117)
118
119grpc_cc_library(
120    name = "interop_client_main",
121    srcs = [
122        "client.cc",
123    ],
124    external_deps = [
125        "absl/flags:flag",
126    ],
127    language = "C++",
128    deps = [
129        ":client_helper_lib",
130    ],
131)
132
133grpc_cc_binary(
134    name = "interop_client",
135    language = "C++",
136    deps = [
137        ":interop_client_main",
138        "//:grpc++",
139        "//test/cpp/util:test_util",
140    ],
141)
142
143grpc_cc_binary(
144    name = "metrics_client",
145    srcs = ["metrics_client.cc"],
146    external_deps = [
147        "absl/flags:flag",
148    ],
149    language = "C++",
150    deps = [
151        "//:grpc++",
152        "//test/cpp/util:metrics_server_lib",
153        "//test/cpp/util:test_config",
154    ],
155)
156
157grpc_cc_binary(
158    name = "reconnect_interop_client",
159    srcs = [
160        "reconnect_interop_client.cc",
161    ],
162    external_deps = [
163        "absl/flags:flag",
164    ],
165    deps = [
166        ":client_helper_lib",
167        "//:grpc++",
168        "//test/core/util:grpc_test_util",
169    ],
170)
171
172grpc_cc_binary(
173    name = "reconnect_interop_server",
174    srcs = [
175        "reconnect_interop_server.cc",
176    ],
177    external_deps = [
178        "absl/flags:flag",
179    ],
180    language = "C++",
181    deps = [
182        ":interop_server_lib",
183        "//:grpc++",
184        "//test/core/util:grpc_test_util",
185    ],
186)
187
188grpc_cc_binary(
189    name = "stress_test",
190    srcs = [
191        "stress_interop_client.cc",
192        "stress_interop_client.h",
193        "stress_test.cc",
194    ],
195    external_deps = [
196        "absl/flags:flag",
197    ],
198    deps = [
199        ":client_helper_lib",
200        "//:grpc++",
201        "//test/cpp/util:metrics_server_lib",
202        "//test/cpp/util:test_config",
203    ],
204)
205
206grpc_cc_binary(
207    name = "interop_test",
208    srcs = ["interop_test.cc"],
209    data = [
210        ":interop_client",
211        ":interop_server",
212    ],
213    external_deps = [
214        "absl/flags:flag",
215    ],
216    tags = ["no_windows"],
217    deps = [
218        "//:gpr",
219        "//:grpc",
220        "//:grpc++",
221        "//test/core/util:grpc_test_util",
222        "//test/cpp/util:test_config",
223        "//test/cpp/util:test_util",
224    ],
225)
226
227sh_test(
228    name = "interop_test_with_metadata_log",
229    srcs = [
230        "interop_test_with_metadata_log.sh",
231    ],
232    data = [
233        ":interop_test",
234    ],
235    tags = ["no_windows"],
236)
237
238grpc_cc_library(
239    name = "xds_stats_watcher",
240    srcs = ["xds_stats_watcher.cc"],
241    hdrs = ["xds_stats_watcher.h"],
242    deps = [
243        ":rpc_behavior_lb_policy",
244        "//:grpc++",
245        "//:grpc++_reflection",
246        "//:grpcpp_admin",
247        "//src/proto/grpc/testing:empty_proto",
248        "//src/proto/grpc/testing:messages_proto",
249        "//src/proto/grpc/testing:test_proto",
250        "//test/core/util:grpc_test_util",
251        "//test/cpp/util:test_config",
252    ],
253)
254
255grpc_cc_test(
256    name = "xds_stats_watcher_test",
257    srcs = [
258        "xds_stats_watcher_test.cc",
259    ],
260    external_deps = ["gtest"],
261    deps = [":xds_stats_watcher"],
262)
263
264grpc_cc_binary(
265    name = "xds_interop_client",
266    srcs = [
267        "xds_interop_client.cc",
268    ],
269    external_deps = [
270        "absl/flags:flag",
271        "otel/exporters/prometheus:prometheus_exporter",
272        "otel/sdk/src/metrics",
273    ],
274    deps = [
275        ":rpc_behavior_lb_policy",
276        ":xds_stats_watcher",
277        "//:grpc++",
278        "//:grpc++_reflection",
279        "//:grpcpp_admin",
280        "//:grpcpp_csm_observability",
281        "//src/proto/grpc/testing:empty_proto",
282        "//src/proto/grpc/testing:messages_proto",
283        "//src/proto/grpc/testing:test_proto",
284        "//test/core/util:grpc_test_util",
285        "//test/cpp/util:test_config",
286    ],
287)
288
289grpc_cc_library(
290    name = "xds_interop_server_lib",
291    testonly = True,
292    srcs = [
293        "pre_stop_hook_server.cc",
294        "xds_interop_server_lib.cc",
295    ],
296    hdrs = [
297        "pre_stop_hook_server.h",
298        "xds_interop_server_lib.h",
299    ],
300    deps = [
301        "//:grpc++",
302        "//:grpc++_reflection",
303        "//:grpcpp_admin",
304        "//src/proto/grpc/testing:empty_proto",
305        "//src/proto/grpc/testing:messages_proto",
306        "//src/proto/grpc/testing:test_proto",
307        "//test/cpp/end2end:test_health_check_service_impl",
308    ],
309)
310
311grpc_cc_binary(
312    name = "xds_interop_server",
313    testonly = True,
314    srcs = [
315        "xds_interop_server.cc",
316    ],
317    external_deps = [
318        "absl/flags:flag",
319        "otel/exporters/prometheus:prometheus_exporter",
320        "otel/sdk/src/metrics",
321    ],
322    deps = [
323        ":xds_interop_server_lib",
324        "//:grpc++",
325        "//:grpcpp_csm_observability",
326        "//test/core/util:grpc_test_util",
327        "//test/cpp/end2end:test_health_check_service_impl",
328        "//test/cpp/util:test_config",
329    ],
330)
331
332grpc_cc_test(
333    name = "pre_stop_hook_server_test",
334    srcs = [
335        "pre_stop_hook_server_test.cc",
336    ],
337    external_deps = ["gtest"],
338    deps = [
339        ":xds_interop_server_lib",
340        "//:grpc++",
341        "//src/proto/grpc/testing:istio_echo_proto",
342        "//test/core/util:grpc_test_util",
343        "//test/cpp/util:test_config",
344    ],
345)
346
347grpc_cc_test(
348    name = "xds_interop_server_test",
349    srcs = [
350        "xds_interop_server_test.cc",
351    ],
352    external_deps = ["gtest"],
353    deps = [
354        ":xds_interop_server_lib",
355        "//:grpc++",
356        "//src/proto/grpc/testing:istio_echo_proto",
357        "//test/core/util:grpc_test_util",
358        "//test/cpp/util:test_config",
359    ],
360)
361
362grpc_cc_library(
363    name = "istio_echo_server_lib",
364    srcs = [
365        "istio_echo_server_lib.cc",
366    ],
367    hdrs = ["istio_echo_server_lib.h"],
368    deps = [
369        "//:grpc++",
370        "//src/proto/grpc/testing:istio_echo_proto",
371    ],
372)
373
374grpc_cc_binary(
375    name = "istio_echo_server",
376    srcs = [
377        "istio_echo_server.cc",
378    ],
379    external_deps = [
380        "absl/flags:flag",
381    ],
382    deps = [
383        ":istio_echo_server_lib",
384        "//:grpc++",
385        "//:grpc++_reflection",
386        "//:grpcpp_admin",
387        "//src/proto/grpc/testing:istio_echo_proto",
388        "//test/core/util:grpc_test_util",
389        "//test/cpp/util:test_config",
390    ],
391)
392
393grpc_cc_test(
394    name = "istio_echo_server_test",
395    srcs = [
396        "istio_echo_server_test.cc",
397    ],
398    external_deps = ["gtest"],
399    deps = [
400        ":istio_echo_server_lib",
401        "//:grpc++",
402        "//src/proto/grpc/testing:istio_echo_proto",
403        "//test/core/util:grpc_test_util",
404        "//test/cpp/util:test_config",
405    ],
406)
407
408grpc_cc_binary(
409    name = "http2_client",
410    srcs = [
411        "http2_client.cc",
412        "http2_client.h",
413    ],
414    external_deps = [
415        "absl/flags:flag",
416    ],
417    deps = [
418        "//:grpc++",
419        "//src/proto/grpc/testing:empty_proto",
420        "//src/proto/grpc/testing:messages_proto",
421        "//src/proto/grpc/testing:test_proto",
422        "//test/core/util:grpc_test_util",
423        "//test/cpp/util:test_config",
424        "//test/cpp/util:test_util",
425    ],
426)
427
428grpc_cc_binary(
429    name = "xds_federation_client",
430    srcs = [
431        "xds_federation_client.cc",
432    ],
433    external_deps = [
434        "absl/flags:flag",
435    ],
436    language = "C++",
437    deps = [
438        ":client_helper_lib",
439        "//:grpc++",
440        "//test/cpp/util:test_config",
441    ],
442)
443
444grpc_cc_binary(
445    name = "observability_interop_server",
446    srcs = [
447        "observability_interop_server_bootstrap.cc",
448    ],
449    external_deps = [
450        "absl/flags:flag",
451    ],
452    language = "C++",
453    tags = ["nobuilder"],
454    deps = [
455        ":interop_server_lib",
456        "//:grpc++",
457        "//:grpcpp_gcp_observability",
458        "//test/cpp/util:test_util",
459    ],
460)
461
462grpc_cc_library(
463    name = "observability_interop_client_main",
464    srcs = [
465        "observability_client.cc",
466    ],
467    external_deps = [
468        "absl/flags:flag",
469        "otel/exporters/prometheus:prometheus_exporter",
470        "otel/sdk/src/metrics",
471    ],
472    language = "C++",
473    tags = ["nobuilder"],
474    deps = [
475        ":client_helper_lib",
476        "//:grpcpp_gcp_observability",
477        "//src/cpp/ext/otel:otel_plugin",
478    ],
479)
480
481grpc_cc_binary(
482    name = "observability_interop_client",
483    language = "C++",
484    tags = ["nobuilder"],
485    deps = [
486        ":observability_interop_client_main",
487        "//:grpc++",
488        "//test/cpp/util:test_util",
489    ],
490)
491
492grpc_cc_binary(
493    name = "observability_interop_test",
494    srcs = ["interop_test.cc"],
495    data = [
496        ":observability_interop_client",
497        ":observability_interop_server",
498    ],
499    external_deps = [
500        "absl/flags:flag",
501    ],
502    tags = [
503        "no_windows",
504        "nobuilder",
505    ],
506    deps = [
507        "//:gpr",
508        "//:grpc",
509        "//:grpc++",
510        "//test/core/util:grpc_test_util",
511        "//test/cpp/util:test_config",
512        "//test/cpp/util:test_util",
513    ],
514)
515
516grpc_cc_library(
517    name = "backend_metrics_lb_policy",
518    srcs = [
519        "backend_metrics_lb_policy.cc",
520    ],
521    hdrs = [
522        "backend_metrics_lb_policy.h",
523    ],
524    external_deps = [
525    ],
526    language = "C++",
527    tags = ["nobuilder"],
528    deps = [
529        "//:grpc",
530        "//:grpc++",
531        "//src/proto/grpc/testing:messages_proto",
532    ],
533)
534
535grpc_cc_test(
536    name = "backend_metrics_lb_policy_test",
537    srcs = [
538        "backend_metrics_lb_policy_test.cc",
539    ],
540    external_deps = ["gtest"],
541    deps = [
542        ":backend_metrics_lb_policy",
543        "//:grpc++",
544        "//:grpcpp_orca_service",
545        "//src/proto/grpc/testing:test_proto",
546        "//test/core/util:grpc_test_util",
547        "//test/cpp/util:test_config",
548    ],
549)
550
551grpc_cc_library(
552    name = "rpc_behavior_lb_policy",
553    srcs = [
554        "rpc_behavior_lb_policy.cc",
555    ],
556    hdrs = [
557        "rpc_behavior_lb_policy.h",
558    ],
559    external_deps = [
560    ],
561    language = "C++",
562    tags = ["nobuilder"],
563    deps = [
564        "//:grpc",
565        "//:grpc++",
566    ],
567)
568