grpc/test/cpp/end2end
Craig Tiller 63c094cf5b
[promises] Run C++ end to end tests with server promises (#32537)
Expand server promises to run with C++ end2end tests.

Across connected_channel/call/batch_builder/pipe/transport:
- fix a bug where read errors weren't propagated from transport to call
so that we can populate failed_before_recv_message for the c++ bindings
- ensure those errors are not, however, used to populate the returned
call status

Add a new latch call arg to lazily propagate the bound CQ for a server
call (and client call, but here it's used degenerately - it's always
populated). This allows server calls to be properly bound to
pollsets.(1)/(2)

In call.cc:
- move some profiling code from FilterStackCall to Call, and then use it
in PromiseBasedCall (this should be cleaned up with tracing work)
- implement GetServerAuthority

In server.cc:
- use an RAII pattern on `MatchResult` to avoid a bug whereby a tag
could be dropped if we cancel a request after it's been matched but
before it's published
- fix deadline export to ServerContext

In resource_quota_server.cc:
- fix some long standing flakes (that were finally obvious with the new
test code) - it's legal here to have client calls not arrive at the
server due to resource starvation, work through that (includes adding
expectations during a `Step` call, which required some small tweaks to
cq_verifier)

In the C++ end2end_test.cc:
- strengthen a flaky test so it passes consistently (it's likely we'll
revisit this with the fuzzing efforts to strengthen it into an actually
robust test)

(1) It's time to remove this concept
(2) Surprisingly the only test that *reliably* demonstrates this not
being done is time_change_test

---------

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2023-04-06 12:32:23 -07:00
..
xds [promises] Run C++ end to end tests with server promises (#32537) 2023-04-06 12:32:23 -07:00
BUILD [promises] Run C++ end to end tests with server promises (#32537) 2023-04-06 12:32:23 -07:00
admin_services_end2end_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
async_end2end_test.cc Reland global config changes (#32661) 2023-03-27 18:55:24 -07:00
cfstream_test.cc [cleanup] Eliminate usage of GRPC_ASSERT(false...); (#31757) 2023-01-11 08:50:32 -08:00
channelz_service_test.cc Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
client_callback_end2end_test.cc Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
client_crash_test.cc [cleanup] Eliminate usage of GRPC_ASSERT(false...); (#31757) 2023-01-11 08:50:32 -08:00
client_crash_test_server.cc [cleanup] Eliminate usage of GRPC_ASSERT(false...); (#31757) 2023-01-11 08:50:32 -08:00
client_interceptors_end2end_test.cc Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
client_lb_end2end_test.cc xDS: Include orca named_metrics in LRS load reports (#32690) 2023-03-28 12:04:01 -07:00
connection_attempt_injector.cc EventEngine::RunAfter migration ConnectionAttemptInjector (#31865) 2022-12-13 11:14:40 -08:00
connection_attempt_injector.h EventEngine::RunAfter migration ConnectionAttemptInjector (#31865) 2022-12-13 11:14:40 -08:00
context_allocator_end2end_test.cc Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
counted_service.h Revert "Revert "start splitting up xds_end2end_test (#27702)" (#27725)" (#27726) 2021-10-14 11:41:45 -07:00
delegating_channel_test.cc Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
end2end_test.cc [promises] Run C++ end to end tests with server promises (#32537) 2023-04-06 12:32:23 -07:00
exception_test.cc Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
filter_end2end_test.cc Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
flaky_network_test.cc [cleanup] Eliminate usage of GRPC_ASSERT(false...); (#31757) 2023-01-11 08:50:32 -08:00
generic_end2end_test.cc Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
grpc_authz_end2end_test.cc Update authz tests to use callback (#30058) 2022-06-30 12:16:22 -07:00
grpclb_end2end_test.cc Reland global config changes (#32661) 2023-03-27 18:55:24 -07:00
health_service_end2end_test.cc [cleanup] Eliminate usage of GRPC_ASSERT(false...); (#31757) 2023-01-11 08:50:32 -08:00
hybrid_end2end_test.cc Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
interceptors_util.cc Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
interceptors_util.h Fix include guards for src/ and test/ directories (#32167) 2023-01-20 16:27:27 -08:00
message_allocator_end2end_test.cc Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
mock_test.cc [cleanup] Eliminate usage of GRPC_ASSERT(false...); (#31757) 2023-01-11 08:50:32 -08:00
nonblocking_test.cc Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
orca_service_end2end_test.cc Revert "Revert "Revert "Revert "server: introduce ServerMetricRecorde… (#32301) 2023-02-06 12:00:39 -08:00
port_sharing_end2end_test.cc [cleanup] Eliminate usage of GRPC_ASSERT(false...); (#31757) 2023-01-11 08:50:32 -08:00
proto_server_reflection_test.cc Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
raw_end2end_test.cc [cleanup] Eliminate usage of GRPC_ASSERT(false...); (#31757) 2023-01-11 08:50:32 -08:00
rls_end2end_test.cc [RLS] Change case of RLS 'x-google-rls-data' header to lowercase. (#32760) 2023-03-31 17:09:38 -07:00
rls_server.cc xDS RLS implementation (#29200) 2022-03-23 21:23:34 -07:00
rls_server.h Fix include guards for src/ and test/ directories (#32167) 2023-01-20 16:27:27 -08:00
server_builder_plugin_test.cc Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
server_crash_test.cc [cleanup] Eliminate usage of GRPC_ASSERT(false...); (#31757) 2023-01-11 08:50:32 -08:00
server_crash_test_client.cc [cleanup] Eliminate usage of GRPC_ASSERT(false...); (#31757) 2023-01-11 08:50:32 -08:00
server_early_return_test.cc [cleanup] Eliminate usage of GRPC_ASSERT(false...); (#31757) 2023-01-11 08:50:32 -08:00
server_interceptors_end2end_test.cc Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
server_load_reporting_end2end_test.cc Reland global config changes (#32661) 2023-03-27 18:55:24 -07:00
service_config_end2end_test.cc Reland global config changes (#32661) 2023-03-27 18:55:24 -07:00
shutdown_test.cc [cleanup] Eliminate usage of GRPC_ASSERT(false...); (#31757) 2023-01-11 08:50:32 -08:00
streaming_throughput_test.cc [cleanup] Eliminate usage of GRPC_ASSERT(false...); (#31757) 2023-01-11 08:50:32 -08:00
test_health_check_service_impl.cc Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
test_health_check_service_impl.h Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
test_service_impl.cc [cleanup] Eliminate usage of GRPC_ASSERT(false...); (#31757) 2023-01-11 08:50:32 -08:00
test_service_impl.h [promises] Run C++ end to end tests with server promises (#32537) 2023-04-06 12:32:23 -07:00
thread_stress_test.cc [flake] Remove inproc thread stress tests (#32283) 2023-02-07 08:58:41 -08:00
time_change_test.cc [cleanup] Eliminate usage of GRPC_ASSERT(false...); (#31757) 2023-01-11 08:50:32 -08:00
tls_key_export_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00