xref: /aosp_15_r20/external/grpc-grpc/test/core/end2end/BUILD (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
1# Copyright 2016 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_library", "grpc_cc_test", "grpc_package", "grpc_proto_library")
16load("grpc_core_end2end_test.bzl", "grpc_core_end2end_test")
17
18licenses(["notice"])
19
20grpc_package(name = "test/core/end2end")
21
22grpc_cc_library(
23    name = "cq_verifier",
24    testonly = 1,
25    srcs = ["cq_verifier.cc"],
26    hdrs = ["cq_verifier.h"],
27    external_deps = [
28        "absl/container:flat_hash_map",
29        "absl/functional:any_invocable",
30        "absl/strings",
31        "absl/strings:str_format",
32        "absl/types:variant",
33        "gtest",
34    ],
35    language = "C++",
36    visibility = ["//:__subpackages__"],
37    deps = [
38        "//:debug_location",
39        "//:gpr",
40        "//:grpc",
41        "//src/core:match",
42        "//src/core:time",
43        "//test/core/util:grpc_test_util",
44    ],
45)
46
47grpc_cc_library(
48    name = "ssl_test_data",
49    srcs = [
50        "data/client_certs.cc",
51        "data/server1_cert.cc",
52        "data/server1_key.cc",
53        "data/test_root_cert.cc",
54    ],
55    hdrs = ["data/ssl_test_data.h"],
56    language = "C++",
57    visibility = ["//:__subpackages__"],
58)
59
60grpc_cc_library(
61    name = "http_proxy",
62    srcs = ["fixtures/http_proxy_fixture.cc"],
63    hdrs = ["fixtures/http_proxy_fixture.h"],
64    external_deps = [
65        "absl/status",
66        "absl/status:statusor",
67        "absl/strings",
68    ],
69    language = "C++",
70    deps = [
71        "//:config",
72        "//:exec_ctx",
73        "//:gpr",
74        "//:grpc",
75        "//:httpcli",
76        "//:sockaddr_utils",
77        "//src/core:channel_args",
78        "//src/core:channel_args_endpoint_config",
79        "//src/core:channel_args_preconditioning",
80        "//src/core:closure",
81        "//src/core:default_event_engine",
82        "//src/core:error",
83        "//src/core:iomgr_fwd",
84        "//src/core:pollset_set",
85        "//src/core:resolved_address",
86        "//src/core:slice_refcount",
87        "//src/core:status_helper",
88        "//src/core:time",
89        "//test/core/util:grpc_test_util",
90    ],
91)
92
93grpc_cc_library(
94    name = "proxy",
95    srcs = ["fixtures/proxy.cc"],
96    hdrs = ["fixtures/proxy.h"],
97    language = "C++",
98    deps = [
99        "//:channel_arg_names",
100        "//:gpr",
101        "//:grpc",
102        "//:grpc_public_hdrs",
103        "//src/core:channel_args",
104        "//test/core/util:grpc_test_util",
105    ],
106)
107
108grpc_cc_library(
109    name = "end2end_test_lib",
110    testonly = 1,
111    srcs = [
112        "end2end_tests.cc",
113    ],
114    hdrs = [
115        "end2end_tests.h",
116    ],
117    external_deps = [
118        "absl/functional:any_invocable",
119        "absl/memory",
120        "absl/meta:type_traits",
121        "absl/random",
122        "absl/strings",
123        "absl/types:optional",
124        "absl/types:variant",
125        "gtest",
126    ],
127    deps = [
128        "cq_verifier",
129        "//:config",
130        "//:debug_location",
131        "//:gpr",
132        "//:grpc",
133        "//:grpc_public_hdrs",
134        "//src/core:bitset",
135        "//src/core:channel_args",
136        "//src/core:default_event_engine",
137        "//src/core:no_destruct",
138        "//src/core:slice",
139        "//src/core:time",
140        "//test/core/event_engine:event_engine_test_utils",
141        "//test/core/util:grpc_test_util",
142    ],
143)
144
145grpc_cc_library(
146    name = "fixture_support",
147    testonly = 1,
148    srcs = ["fixtures/local_util.cc"],
149    hdrs = [
150        "fixtures/h2_oauth2_common.h",
151        "fixtures/h2_ssl_cred_reload_fixture.h",
152        "fixtures/h2_ssl_tls_common.h",
153        "fixtures/h2_tls_common.h",
154        "fixtures/inproc_fixture.h",
155        "fixtures/local_util.h",
156        "fixtures/secure_fixture.h",
157        "fixtures/sockpair_fixture.h",
158        "tests/cancel_test_helpers.h",
159    ],
160    external_deps = [
161        "absl/functional:any_invocable",
162        "absl/status",
163        "absl/status:statusor",
164        "absl/strings",
165        "gtest",
166    ],
167    language = "C++",
168    deps = [
169        "end2end_test_lib",
170        "//:channel_arg_names",
171        "//:config",
172        "//:exec_ctx",
173        "//:gpr",
174        "//:grpc",
175        "//:grpc_public_hdrs",
176        "//:grpc_security_base",
177        "//:grpc_transport_chttp2",
178        "//:ref_counted_ptr",
179        "//src/core:channel_args",
180        "//src/core:channel_args_preconditioning",
181        "//src/core:channel_stack_type",
182        "//src/core:error",
183        "//src/core:grpc_ssl_credentials",
184        "//src/core:grpc_tls_credentials",
185        "//src/core:grpc_transport_inproc",
186        "//src/core:slice",
187        "//test/core/util:grpc_test_util",
188    ],
189)
190
191grpc_cc_library(
192    name = "end2end_test_suites",
193    testonly = 1,
194    srcs = [
195        "end2end_test_suites.cc",
196    ],
197    external_deps = [
198        "absl/base:core_headers",
199        "absl/functional:any_invocable",
200        "absl/meta:type_traits",
201        "absl/random",
202        "absl/status",
203        "absl/strings:str_format",
204        "absl/types:optional",
205        "gtest",
206    ],
207    deps = [
208        "end2end_test_lib",
209        "fixture_support",
210        "http_proxy",
211        "proxy",
212        "//:channel_arg_names",
213        "//:exec_ctx",
214        "//:gpr",
215        "//:grpc",
216        "//:grpc_public_hdrs",
217        "//:grpc_trace",
218        "//src/core:channel_args",
219        "//src/core:chaotic_good_connector",
220        "//src/core:chaotic_good_server",
221        "//src/core:env",
222        "//src/core:error",
223        "//src/core:grpc_fake_credentials",
224        "//src/core:iomgr_port",
225        "//src/core:no_destruct",
226        "//test/core/util:grpc_test_util",
227    ],
228    alwayslink = 1,
229)
230
231grpc_cc_library(
232    name = "end2end_test_main",
233    testonly = 1,
234    srcs = [
235        "end2end_test_main.cc",
236    ],
237    external_deps = [
238        "absl/functional:any_invocable",
239        "absl/strings",
240        "absl/types:optional",
241        "gtest",
242    ],
243    tags = ["nofixdeps"],
244    deps = [
245        "end2end_test_lib",
246        "end2end_test_suites",
247        "fixture_support",
248        "//:config_vars",
249        "//test/core/util:grpc_test_util",
250    ],
251)
252
253grpc_cc_library(
254    name = "end2end_test_fuzzer",
255    testonly = 1,
256    srcs = [
257        "end2end_test_fuzzer.cc",
258    ],
259    hdrs = [
260        "end2end_test_fuzzer.h",
261    ],
262    external_deps = [
263        "absl/functional:any_invocable",
264        "absl/strings",
265        "absl/types:optional",
266        "gtest",
267    ],
268    tags = ["nofixdeps"],
269    deps = [
270        "end2end_test_fuzzer_proto",
271        "end2end_test_lib",
272        "end2end_test_suites",
273        "fixture_support",
274        "//:config_vars",
275        "//test/core/event_engine/fuzzing_event_engine",
276        "//test/core/util:fuzz_config_vars",
277        "//test/core/util:grpc_test_util",
278    ],
279)
280
281grpc_core_end2end_test(name = "bad_ping")
282
283grpc_core_end2end_test(name = "binary_metadata")
284
285grpc_core_end2end_test(name = "call_creds")
286
287grpc_core_end2end_test(name = "call_host_override")
288
289grpc_core_end2end_test(
290    name = "cancel_after_accept",
291    shard_count = 50,
292)
293
294grpc_core_end2end_test(
295    name = "cancel_after_client_done",
296    shard_count = 50,
297)
298
299grpc_core_end2end_test(
300    name = "cancel_after_invoke",
301    shard_count = 50,
302)
303
304grpc_core_end2end_test(
305    name = "cancel_after_round_trip",
306    shard_count = 50,
307)
308
309grpc_core_end2end_test(name = "cancel_before_invoke")
310
311grpc_core_end2end_test(name = "cancel_in_a_vacuum")
312
313grpc_core_end2end_test(name = "cancel_with_status")
314
315grpc_core_end2end_test(name = "channelz")
316
317grpc_core_end2end_test(name = "client_streaming")
318
319grpc_core_end2end_test(
320    name = "compressed_payload",
321    tags = ["compression_test"],
322)
323
324grpc_core_end2end_test(name = "connectivity")
325
326grpc_core_end2end_test(name = "default_host")
327
328grpc_core_end2end_test(name = "disappearing_server")
329
330grpc_core_end2end_test(name = "empty_batch")
331
332grpc_core_end2end_test(name = "filter_causes_close")
333
334grpc_core_end2end_test(name = "filter_context")
335
336grpc_core_end2end_test(name = "filter_init_fails")
337
338grpc_core_end2end_test(name = "filtered_metadata")
339
340grpc_core_end2end_test(name = "graceful_server_shutdown")
341
342grpc_core_end2end_test(name = "grpc_authz")
343
344grpc_core_end2end_test(
345    name = "high_initial_seqno",
346    shard_count = 20,
347)
348
349grpc_core_end2end_test(
350    name = "hpack_size",
351    shard_count = 50,
352)
353
354grpc_core_end2end_test(name = "http2_stats")
355
356grpc_core_end2end_test(name = "invoke_large_request")
357
358grpc_core_end2end_test(name = "keepalive_timeout")
359
360grpc_core_end2end_test(
361    name = "large_metadata",
362    shard_count = 50,
363)
364
365grpc_core_end2end_test(name = "max_concurrent_streams")
366
367grpc_core_end2end_test(name = "max_connection_age")
368
369grpc_core_end2end_test(name = "max_connection_idle")
370
371grpc_core_end2end_test(name = "max_message_length")
372
373grpc_core_end2end_test(name = "negative_deadline")
374
375grpc_core_end2end_test(name = "no_logging")
376
377grpc_core_end2end_test(name = "no_op")
378
379grpc_core_end2end_test(name = "payload")
380
381grpc_core_end2end_test(name = "ping")
382
383grpc_core_end2end_test(name = "ping_pong_streaming")
384
385grpc_core_end2end_test(name = "proxy_auth")
386
387grpc_core_end2end_test(name = "registered_call")
388
389grpc_core_end2end_test(
390    name = "request_with_flags",
391    shard_count = 50,
392)
393
394grpc_core_end2end_test(name = "request_with_payload")
395
396grpc_core_end2end_test(name = "resource_quota_server")
397
398grpc_core_end2end_test(name = "retry")
399
400grpc_core_end2end_test(name = "retry_cancel_after_first_attempt_starts")
401
402grpc_core_end2end_test(name = "retry_cancel_during_delay")
403
404grpc_core_end2end_test(name = "retry_cancel_with_multiple_send_batches")
405
406grpc_core_end2end_test(name = "retry_cancellation")
407
408grpc_core_end2end_test(name = "retry_disabled")
409
410grpc_core_end2end_test(name = "retry_exceeds_buffer_size_in_delay")
411
412grpc_core_end2end_test(name = "retry_exceeds_buffer_size_in_initial_batch")
413
414grpc_core_end2end_test(name = "retry_exceeds_buffer_size_in_subsequent_batch")
415
416grpc_core_end2end_test(name = "retry_lb_drop")
417
418grpc_core_end2end_test(name = "retry_lb_fail")
419
420grpc_core_end2end_test(name = "retry_non_retriable_status")
421
422grpc_core_end2end_test(name = "retry_non_retriable_status_before_trailers")
423
424grpc_core_end2end_test(name = "retry_per_attempt_recv_timeout")
425
426grpc_core_end2end_test(name = "retry_per_attempt_recv_timeout_on_last_attempt")
427
428grpc_core_end2end_test(name = "retry_recv_initial_metadata")
429
430grpc_core_end2end_test(name = "retry_recv_message")
431
432grpc_core_end2end_test(name = "retry_recv_message_replay")
433
434grpc_core_end2end_test(name = "retry_recv_trailing_metadata_error")
435
436grpc_core_end2end_test(name = "retry_send_initial_metadata_refs")
437
438grpc_core_end2end_test(name = "retry_send_op_fails")
439
440grpc_core_end2end_test(name = "retry_send_recv_batch")
441
442grpc_core_end2end_test(name = "retry_server_pushback_delay")
443
444grpc_core_end2end_test(name = "retry_server_pushback_disabled")
445
446grpc_core_end2end_test(name = "retry_streaming")
447
448grpc_core_end2end_test(name = "retry_streaming_after_commit")
449
450grpc_core_end2end_test(name = "retry_streaming_succeeds_before_replay_finished")
451
452grpc_core_end2end_test(name = "retry_throttled")
453
454grpc_core_end2end_test(name = "retry_too_many_attempts")
455
456grpc_core_end2end_test(name = "retry_transparent_goaway")
457
458grpc_core_end2end_test(name = "retry_transparent_max_concurrent_streams")
459
460grpc_core_end2end_test(name = "retry_transparent_not_sent_on_wire")
461
462grpc_core_end2end_test(name = "retry_unref_before_finish")
463
464grpc_core_end2end_test(name = "retry_unref_before_recv")
465
466grpc_core_end2end_test(name = "server_finishes_request")
467
468grpc_core_end2end_test(name = "server_streaming")
469
470grpc_core_end2end_test(name = "shutdown_finishes_calls")
471
472grpc_core_end2end_test(name = "shutdown_finishes_tags")
473
474grpc_core_end2end_test(
475    name = "simple_delayed_request",
476    shard_count = 3,
477)
478
479grpc_core_end2end_test(name = "simple_metadata")
480
481grpc_core_end2end_test(name = "simple_request")
482
483grpc_core_end2end_test(name = "streaming_error_response")
484
485grpc_core_end2end_test(name = "timeout_before_request_call")
486
487grpc_core_end2end_test(name = "trailing_metadata")
488
489grpc_core_end2end_test(name = "write_buffering")
490
491grpc_core_end2end_test(name = "write_buffering_at_end")
492
493grpc_cc_test(
494    name = "bad_server_response_test",
495    srcs = ["bad_server_response_test.cc"],
496    language = "C++",
497    deps = [
498        "cq_verifier",
499        "//:exec_ctx",
500        "//:gpr",
501        "//:grpc",
502        "//:grpc_public_hdrs",
503        "//src/core:closure",
504        "//src/core:error",
505        "//src/core:event_engine_shim",
506        "//src/core:gpr_atm",
507        "//src/core:iomgr_fwd",
508        "//src/core:notification",
509        "//src/core:slice",
510        "//src/core:status_helper",
511        "//test/core/util:grpc_test_util",
512    ],
513)
514
515grpc_cc_test(
516    name = "connection_refused_test",
517    srcs = ["connection_refused_test.cc"],
518    language = "C++",
519    deps = [
520        "cq_verifier",
521        "//:channel_arg_names",
522        "//:exec_ctx",
523        "//:gpr",
524        "//:grpc_public_hdrs",
525        "//src/core:channel_args",
526        "//test/core/util:grpc_test_util",
527    ],
528)
529
530grpc_cc_test(
531    name = "dualstack_socket_test",
532    srcs = ["dualstack_socket_test.cc"],
533    external_deps = [
534        "absl/status:statusor",
535        "absl/strings",
536        "absl/strings:str_format",
537    ],
538    language = "C++",
539    tags = ["no_windows"],
540    deps = [
541        "cq_verifier",
542        "//:gpr",
543        "//:grpc",
544        "//:grpc_public_hdrs",
545        "//:sockaddr_utils",
546        "//src/core:error",
547        "//src/core:iomgr_port",
548        "//src/core:resolved_address",
549        "//test/core/util:grpc_test_util",
550    ],
551)
552
553grpc_cc_test(
554    name = "goaway_server_test",
555    srcs = ["goaway_server_test.cc"],
556    external_deps = [
557        "absl/status",
558        "absl/status:statusor",
559        "absl/strings",
560    ],
561    language = "C++",
562    deps = [
563        "cq_verifier",
564        "//:channel_arg_names",
565        "//:debug_location",
566        "//:endpoint_addresses",
567        "//:exec_ctx",
568        "//:gpr",
569        "//:grpc",
570        "//:grpc_public_hdrs",
571        "//:grpc_resolver_dns_ares",
572        "//src/core:channel_args",
573        "//src/core:closure",
574        "//src/core:default_event_engine",
575        "//src/core:error",
576        "//src/core:experiments",
577        "//src/core:grpc_sockaddr",
578        "//src/core:iomgr_fwd",
579        "//src/core:resolved_address",
580        "//src/core:time",
581        "//test/core/util:grpc_test_util",
582    ],
583)
584
585grpc_cc_test(
586    name = "invalid_call_argument_test",
587    srcs = ["invalid_call_argument_test.cc"],
588    language = "C++",
589    deps = [
590        "cq_verifier",
591        "//:gpr",
592        "//:gpr_platform",
593        "//:grpc_public_hdrs",
594        "//test/core/util:grpc_test_util",
595    ],
596)
597
598grpc_cc_test(
599    name = "multiple_server_queues_test",
600    srcs = ["multiple_server_queues_test.cc"],
601    language = "C++",
602    deps = [
603        "//:event_engine_base_hdrs",
604        "//:gpr",
605        "//test/core/util:grpc_test_util",
606    ],
607)
608
609grpc_cc_test(
610    name = "no_server_test",
611    srcs = ["no_server_test.cc"],
612    external_deps = [
613        "absl/status",
614        "absl/status:statusor",
615        "absl/time",
616    ],
617    language = "C++",
618    deps = [
619        "cq_verifier",
620        "//:endpoint_addresses",
621        "//:exec_ctx",
622        "//:gpr",
623        "//:grpc_public_hdrs",
624        "//:grpc_resolver",
625        "//:grpc_resolver_fake",
626        "//:ref_counted_ptr",
627        "//src/core:channel_args",
628        "//src/core:grpc_service_config",
629        "//test/core/util:grpc_test_util",
630    ],
631)
632
633grpc_cc_test(
634    name = "h2_ssl_cert_test",
635    srcs = [
636        "end2end_tests.h",
637        "h2_ssl_cert_test.cc",
638    ],
639    external_deps = [
640        "absl/functional:any_invocable",
641        "absl/memory",
642        "absl/meta:type_traits",
643        "absl/strings",
644        "absl/types:optional",
645        "absl/types:variant",
646        "gtest",
647    ],
648    language = "C++",
649    shard_count = 10,
650    deps = [
651        "cq_verifier",
652        "end2end_test_lib",
653        "fixture_support",
654        "ssl_test_data",
655        "//:channel_arg_names",
656        "//:config_vars",
657        "//:debug_location",
658        "//:gpr",
659        "//:grpc",
660        "//:grpc_public_hdrs",
661        "//:grpc_security_base",
662        "//src/core:bitset",
663        "//src/core:channel_args",
664        "//src/core:slice",
665        "//src/core:time",
666        "//test/core/event_engine:event_engine_test_utils",
667        "//test/core/util:grpc_test_util",
668    ],
669)
670
671grpc_cc_test(
672    name = "h2_ssl_session_reuse_test",
673    srcs = ["h2_ssl_session_reuse_test.cc"],
674    data = [
675        "//src/core/tsi/test_creds:ca.pem",
676        "//src/core/tsi/test_creds:client.key",
677        "//src/core/tsi/test_creds:client.pem",
678        "//src/core/tsi/test_creds:server1.key",
679        "//src/core/tsi/test_creds:server1.pem",
680    ],
681    external_deps = [
682        "absl/types:optional",
683        "gtest",
684    ],
685    language = "C++",
686    deps = [
687        "cq_verifier",
688        "//:channel_arg_names",
689        "//:config_vars",
690        "//:exec_ctx",
691        "//:gpr",
692        "//:grpc",
693        "//:grpc_public_hdrs",
694        "//src/core:channel_args",
695        "//src/core:error",
696        "//src/core:useful",
697        "//test/core/util:grpc_test_util",
698    ],
699)
700
701grpc_cc_test(
702    name = "h2_tls_peer_property_external_verifier_test",
703    srcs = ["h2_tls_peer_property_external_verifier_test.cc"],
704    data = [
705        "//src/core/tsi/test_creds:ca.pem",
706        "//src/core/tsi/test_creds:client.key",
707        "//src/core/tsi/test_creds:client.pem",
708        "//src/core/tsi/test_creds:server1.key",
709        "//src/core/tsi/test_creds:server1.pem",
710    ],
711    external_deps = [
712        "absl/types:optional",
713        "gtest",
714    ],
715    language = "C++",
716    deps = [
717        "cq_verifier",
718        "//:channel_arg_names",
719        "//:config_vars",
720        "//:exec_ctx",
721        "//:gpr",
722        "//:grpc",
723        "//:grpc_public_hdrs",
724        "//src/core:channel_args",
725        "//src/core:error",
726        "//src/core:useful",
727        "//test/core/util:grpc_test_util",
728    ],
729)
730
731grpc_proto_library(
732    name = "end2end_test_fuzzer_proto",
733    srcs = ["end2end_test_fuzzer.proto"],
734    has_services = False,
735    deps = [
736        "//test/core/event_engine/fuzzing_event_engine:fuzzing_event_engine_proto",
737        "//test/core/util:fuzz_config_vars_proto",
738    ],
739)
740