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