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