From d1035bae1fda42521394bce6a0225c51a87359fc Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Sat, 23 Nov 2024 12:22:23 -0800 Subject: [PATCH] [chaotic-good] Fix timeout in test suite (#38177) Split the test suite into multiple tests (one per fixture) to avoid a timeout Closes #38177 COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/38177 from ctiller:timeout 2371f5dc7168d6e9ab27835f68c6d1501534f6ed PiperOrigin-RevId: 699518935 --- CMakeLists.txt | 74 +++++++++++++ build_autogenerated.yaml | 57 ++++++++++ test/core/transport/test_suite/BUILD | 43 +++++++- .../test_suite/chaotic_good_fixture.cc | 101 +----------------- .../chaotic_good_fixture_helpers.cc | 63 +++++++++++ .../test_suite/chaotic_good_fixture_helpers.h | 54 ++++++++++ .../chaotic_good_single_connection_fixture.cc | 43 ++++++++ .../chaotic_good_single_connection/empty | 1 + tools/run_tests/generated/tests.json | 20 ++++ 9 files changed, 356 insertions(+), 100 deletions(-) create mode 100644 test/core/transport/test_suite/chaotic_good_fixture_helpers.cc create mode 100644 test/core/transport/test_suite/chaotic_good_fixture_helpers.h create mode 100644 test/core/transport/test_suite/chaotic_good_single_connection_fixture.cc create mode 100644 test/core/transport/test_suite/corpus/chaotic_good_single_connection/empty diff --git a/CMakeLists.txt b/CMakeLists.txt index 02b9ed45cea1a..dbe35f0f19db3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1356,6 +1356,9 @@ if(gRPC_BUILD_TESTS) add_dependencies(buildtests_cxx channel_trace_test) add_dependencies(buildtests_cxx channelz_registry_test) add_dependencies(buildtests_cxx channelz_service_test) + if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX) + add_dependencies(buildtests_cxx chaotic_good_single_connection_test) + endif() add_dependencies(buildtests_cxx check_gcp_environment_linux_test) add_dependencies(buildtests_cxx check_gcp_environment_windows_test) add_dependencies(buildtests_cxx chunked_vector_test) @@ -11549,6 +11552,76 @@ target_link_libraries(channelz_service_test ) +endif() +if(gRPC_BUILD_TESTS) +if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX) + + add_executable(chaotic_good_single_connection_test + ${_gRPC_PROTO_GENS_DIR}/src/core/ext/transport/chaotic_good/chaotic_good_frame.pb.cc + ${_gRPC_PROTO_GENS_DIR}/src/core/ext/transport/chaotic_good/chaotic_good_frame.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/src/core/ext/transport/chaotic_good/chaotic_good_frame.pb.h + ${_gRPC_PROTO_GENS_DIR}/src/core/ext/transport/chaotic_good/chaotic_good_frame.grpc.pb.h + ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.cc + ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.cc + ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.h + ${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.grpc.pb.h + src/core/ext/transport/chaotic_good/client_transport.cc + src/core/ext/transport/chaotic_good/control_endpoint.cc + src/core/ext/transport/chaotic_good/data_endpoints.cc + src/core/ext/transport/chaotic_good/frame.cc + src/core/ext/transport/chaotic_good/frame_header.cc + src/core/ext/transport/chaotic_good/server_transport.cc + src/core/lib/transport/promise_endpoint.cc + test/core/call/yodel/test_main.cc + test/core/call/yodel/yodel_test.cc + test/core/event_engine/event_engine_test_utils.cc + test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.cc + test/core/transport/test_suite/call_content.cc + test/core/transport/test_suite/call_shapes.cc + test/core/transport/test_suite/chaotic_good_fixture_helpers.cc + test/core/transport/test_suite/chaotic_good_single_connection_fixture.cc + test/core/transport/test_suite/no_op.cc + test/core/transport/test_suite/stress.cc + test/core/transport/test_suite/transport_test.cc + ) + if(WIN32 AND MSVC) + if(BUILD_SHARED_LIBS) + target_compile_definitions(chaotic_good_single_connection_test + PRIVATE + "GPR_DLL_IMPORTS" + "GRPC_DLL_IMPORTS" + ) + endif() + endif() + target_compile_features(chaotic_good_single_connection_test PUBLIC cxx_std_14) + target_include_directories(chaotic_good_single_connection_test + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/include + ${_gRPC_ADDRESS_SORTING_INCLUDE_DIR} + ${_gRPC_RE2_INCLUDE_DIR} + ${_gRPC_SSL_INCLUDE_DIR} + ${_gRPC_UPB_GENERATED_DIR} + ${_gRPC_UPB_GRPC_GENERATED_DIR} + ${_gRPC_UPB_INCLUDE_DIR} + ${_gRPC_XXHASH_INCLUDE_DIR} + ${_gRPC_ZLIB_INCLUDE_DIR} + third_party/googletest/googletest/include + third_party/googletest/googletest + third_party/googletest/googlemock/include + third_party/googletest/googlemock + ${_gRPC_PROTO_GENS_DIR} + ) + + target_link_libraries(chaotic_good_single_connection_test + ${_gRPC_ALLTARGETS_LIBRARIES} + gtest + ${_gRPC_PROTOBUF_LIBRARIES} + grpc_test_util + ) + + +endif() endif() if(gRPC_BUILD_TESTS) @@ -34021,6 +34094,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX) test/core/transport/test_suite/call_content.cc test/core/transport/test_suite/call_shapes.cc test/core/transport/test_suite/chaotic_good_fixture.cc + test/core/transport/test_suite/chaotic_good_fixture_helpers.cc test/core/transport/test_suite/no_op.cc test/core/transport/test_suite/stress.cc test/core/transport/test_suite/transport_test.cc diff --git a/build_autogenerated.yaml b/build_autogenerated.yaml index 051708a380e95..925c6ba710b6e 100644 --- a/build_autogenerated.yaml +++ b/build_autogenerated.yaml @@ -8654,6 +8654,61 @@ targets: - gtest - grpcpp_channelz - grpc++_test_util +- name: chaotic_good_single_connection_test + gtest: true + build: test + language: c++ + headers: + - src/core/ext/transport/chaotic_good/chaotic_good_transport.h + - src/core/ext/transport/chaotic_good/client_transport.h + - src/core/ext/transport/chaotic_good/control_endpoint.h + - src/core/ext/transport/chaotic_good/data_endpoints.h + - src/core/ext/transport/chaotic_good/frame.h + - src/core/ext/transport/chaotic_good/frame_header.h + - src/core/ext/transport/chaotic_good/server_transport.h + - src/core/lib/promise/detail/promise_variant.h + - src/core/lib/promise/event_engine_wakeup_scheduler.h + - src/core/lib/promise/inter_activity_latch.h + - src/core/lib/promise/inter_activity_pipe.h + - src/core/lib/promise/match_promise.h + - src/core/lib/promise/mpsc.h + - src/core/lib/promise/switch.h + - src/core/lib/promise/wait_set.h + - src/core/lib/transport/promise_endpoint.h + - test/core/call/yodel/yodel_test.h + - test/core/event_engine/event_engine_test_utils.h + - test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.h + - test/core/transport/test_suite/chaotic_good_fixture_helpers.h + - test/core/transport/test_suite/transport_test.h + src: + - src/core/ext/transport/chaotic_good/chaotic_good_frame.proto + - test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.proto + - src/core/ext/transport/chaotic_good/client_transport.cc + - src/core/ext/transport/chaotic_good/control_endpoint.cc + - src/core/ext/transport/chaotic_good/data_endpoints.cc + - src/core/ext/transport/chaotic_good/frame.cc + - src/core/ext/transport/chaotic_good/frame_header.cc + - src/core/ext/transport/chaotic_good/server_transport.cc + - src/core/lib/transport/promise_endpoint.cc + - test/core/call/yodel/test_main.cc + - test/core/call/yodel/yodel_test.cc + - test/core/event_engine/event_engine_test_utils.cc + - test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.cc + - test/core/transport/test_suite/call_content.cc + - test/core/transport/test_suite/call_shapes.cc + - test/core/transport/test_suite/chaotic_good_fixture_helpers.cc + - test/core/transport/test_suite/chaotic_good_single_connection_fixture.cc + - test/core/transport/test_suite/no_op.cc + - test/core/transport/test_suite/stress.cc + - test/core/transport/test_suite/transport_test.cc + deps: + - gtest + - protobuf + - grpc_test_util + platforms: + - linux + - posix + uses_polling: false - name: check_gcp_environment_linux_test gtest: true build: test @@ -22130,6 +22185,7 @@ targets: - test/core/call/yodel/yodel_test.h - test/core/event_engine/event_engine_test_utils.h - test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.h + - test/core/transport/test_suite/chaotic_good_fixture_helpers.h - test/core/transport/test_suite/transport_test.h src: - src/core/ext/transport/chaotic_good/chaotic_good_frame.proto @@ -22148,6 +22204,7 @@ targets: - test/core/transport/test_suite/call_content.cc - test/core/transport/test_suite/call_shapes.cc - test/core/transport/test_suite/chaotic_good_fixture.cc + - test/core/transport/test_suite/chaotic_good_fixture_helpers.cc - test/core/transport/test_suite/no_op.cc - test/core/transport/test_suite/stress.cc - test/core/transport/test_suite/transport_test.cc diff --git a/test/core/transport/test_suite/BUILD b/test/core/transport/test_suite/BUILD index 3ba6cfde4b451..fc1a195411836 100644 --- a/test/core/transport/test_suite/BUILD +++ b/test/core/transport/test_suite/BUILD @@ -33,9 +33,10 @@ grpc_cc_library( ) grpc_cc_library( - name = "chaotic_good_fixture", + name = "chaotic_good_fixture_helpers", testonly = 1, - srcs = ["chaotic_good_fixture.cc"], + srcs = ["chaotic_good_fixture_helpers.cc"], + hdrs = ["chaotic_good_fixture_helpers.h"], external_deps = [ "absl/log:check", "gtest", @@ -49,6 +50,33 @@ grpc_cc_library( "//src/core:grpc_promise_endpoint", "//src/core:resource_quota", ], +) + +grpc_cc_library( + name = "chaotic_good_fixture", + testonly = 1, + srcs = ["chaotic_good_fixture.cc"], + external_deps = [ + "absl/log:check", + "gtest", + ], + deps = [ + "chaotic_good_fixture_helpers", + ], + alwayslink = 1, +) + +grpc_cc_library( + name = "chaotic_good_single_connection_fixture", + testonly = 1, + srcs = ["chaotic_good_single_connection_fixture.cc"], + external_deps = [ + "absl/log:check", + "gtest", + ], + deps = [ + "chaotic_good_fixture_helpers", + ], alwayslink = 1, ) @@ -123,3 +151,14 @@ grpc_transport_test( ":stress", ], ) + +grpc_transport_test( + name = "chaotic_good_single_connection", + deps = [ + ":call_content", + ":call_shapes", + ":chaotic_good_single_connection_fixture", + ":no_op", + ":stress", + ], +) diff --git a/test/core/transport/test_suite/chaotic_good_fixture.cc b/test/core/transport/test_suite/chaotic_good_fixture.cc index 8aeed4348be9f..f997372199e68 100644 --- a/test/core/transport/test_suite/chaotic_good_fixture.cc +++ b/test/core/transport/test_suite/chaotic_good_fixture.cc @@ -12,91 +12,18 @@ // See the License for the specific language governing permissions and // limitations under the License. -#include +#include "test/core/transport/test_suite/chaotic_good_fixture_helpers.h" -#include "absl/log/check.h" -#include "gmock/gmock.h" -#include "src/core/ext/transport/chaotic_good/client_transport.h" -#include "src/core/ext/transport/chaotic_good/server_transport.h" -#include "src/core/lib/event_engine/memory_allocator_factory.h" -#include "src/core/lib/event_engine/tcp_socket_utils.h" -#include "src/core/lib/resource_quota/resource_quota.h" -#include "src/core/lib/transport/promise_endpoint.h" -#include "test/core/transport/test_suite/transport_test.h" - -using grpc_event_engine::experimental::EndpointConfig; using grpc_event_engine::experimental::EventEngine; -using grpc_event_engine::experimental::FuzzingEventEngine; -using grpc_event_engine::experimental::MemoryQuotaBasedMemoryAllocatorFactory; -using grpc_event_engine::experimental::URIToResolvedAddress; namespace grpc_core { -namespace { - -class MockEndpointConfig : public EndpointConfig { - public: - MOCK_METHOD(absl::optional, GetInt, (absl::string_view key), - (const, override)); - MOCK_METHOD(absl::optional, GetString, - (absl::string_view key), (const, override)); - MOCK_METHOD(void*, GetVoidPointer, (absl::string_view key), - (const, override)); -}; - -struct EndpointPair { - PromiseEndpoint client; - PromiseEndpoint server; -}; - -EndpointPair CreateEndpointPair( - grpc_event_engine::experimental::FuzzingEventEngine* event_engine, - ResourceQuotaRefPtr resource_quota, int port) { - std::unique_ptr client_endpoint; - std::unique_ptr server_endpoint; - - const auto resolved_address = - URIToResolvedAddress(absl::StrCat("ipv4:127.0.0.1:", port)).value(); - - ::testing::StrictMock endpoint_config; - auto listener = *event_engine->CreateListener( - [&server_endpoint](std::unique_ptr endpoint, - MemoryAllocator) { - server_endpoint = std::move(endpoint); - }, - [](absl::Status) {}, endpoint_config, - std::make_unique( - resource_quota->memory_quota())); - CHECK_OK(listener->Bind(resolved_address)); - CHECK_OK(listener->Start()); - - event_engine->Connect( - [&client_endpoint]( - absl::StatusOr> endpoint) { - CHECK_OK(endpoint); - client_endpoint = std::move(endpoint).value(); - }, - resolved_address, endpoint_config, - resource_quota->memory_quota()->CreateMemoryAllocator("client"), - Duration::Hours(3)); - - while (client_endpoint == nullptr || server_endpoint == nullptr) { - event_engine->Tick(); - } - - return EndpointPair{ - PromiseEndpoint(std::move(client_endpoint), SliceBuffer()), - PromiseEndpoint(std::move(server_endpoint), SliceBuffer())}; -} - -} // namespace - TRANSPORT_FIXTURE(ChaoticGood) { auto resource_quota = MakeResourceQuota("test"); EndpointPair control_endpoints = - CreateEndpointPair(event_engine.get(), resource_quota, 1234); + CreateEndpointPair(event_engine.get(), resource_quota.get(), 1234); EndpointPair data_endpoints = - CreateEndpointPair(event_engine.get(), resource_quota, 4321); + CreateEndpointPair(event_engine.get(), resource_quota.get(), 4321); auto channel_args = ChannelArgs() .SetObject(resource_quota) @@ -115,26 +42,4 @@ TRANSPORT_FIXTURE(ChaoticGood) { std::move(server_transport)}; } -TRANSPORT_FIXTURE(ChaoticGoodSingleConnection) { - auto resource_quota = MakeResourceQuota("test"); - EndpointPair control_endpoints = - CreateEndpointPair(event_engine.get(), resource_quota, 1234); - EndpointPair data_endpoints = - CreateEndpointPair(event_engine.get(), resource_quota, 4321); - auto channel_args = - ChannelArgs() - .SetObject(resource_quota) - .SetObject(std::static_pointer_cast(event_engine)); - auto client_transport = - MakeOrphanable( - std::move(control_endpoints.client), std::vector{}, - ChannelArgs().SetObject(resource_quota), event_engine); - auto server_transport = - MakeOrphanable( - channel_args, std::move(control_endpoints.server), - std::vector{}, event_engine); - return ClientAndServerTransportPair{std::move(client_transport), - std::move(server_transport)}; -} - } // namespace grpc_core diff --git a/test/core/transport/test_suite/chaotic_good_fixture_helpers.cc b/test/core/transport/test_suite/chaotic_good_fixture_helpers.cc new file mode 100644 index 0000000000000..434cc6c9e7b69 --- /dev/null +++ b/test/core/transport/test_suite/chaotic_good_fixture_helpers.cc @@ -0,0 +1,63 @@ +// Copyright 2024 gRPC authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "test/core/transport/test_suite/chaotic_good_fixture_helpers.h" + +using grpc_event_engine::experimental::EventEngine; +using grpc_event_engine::experimental::FuzzingEventEngine; +using grpc_event_engine::experimental::MemoryQuotaBasedMemoryAllocatorFactory; +using grpc_event_engine::experimental::URIToResolvedAddress; + +namespace grpc_core { + +EndpointPair CreateEndpointPair(FuzzingEventEngine* event_engine, + ResourceQuota* resource_quota, int port) { + std::unique_ptr client_endpoint; + std::unique_ptr server_endpoint; + + const auto resolved_address = + URIToResolvedAddress(absl::StrCat("ipv4:127.0.0.1:", port)).value(); + + ::testing::StrictMock endpoint_config; + auto listener = *event_engine->CreateListener( + [&server_endpoint](std::unique_ptr endpoint, + MemoryAllocator) { + server_endpoint = std::move(endpoint); + }, + [](absl::Status) {}, endpoint_config, + std::make_unique( + resource_quota->memory_quota())); + CHECK_OK(listener->Bind(resolved_address)); + CHECK_OK(listener->Start()); + + event_engine->Connect( + [&client_endpoint]( + absl::StatusOr> endpoint) { + CHECK_OK(endpoint); + client_endpoint = std::move(endpoint).value(); + }, + resolved_address, endpoint_config, + resource_quota->memory_quota()->CreateMemoryAllocator("client"), + Duration::Hours(3)); + + while (client_endpoint == nullptr || server_endpoint == nullptr) { + event_engine->Tick(); + } + + return EndpointPair{ + PromiseEndpoint(std::move(client_endpoint), SliceBuffer()), + PromiseEndpoint(std::move(server_endpoint), SliceBuffer())}; +} + +} // namespace grpc_core diff --git a/test/core/transport/test_suite/chaotic_good_fixture_helpers.h b/test/core/transport/test_suite/chaotic_good_fixture_helpers.h new file mode 100644 index 0000000000000..3e1403d5a536b --- /dev/null +++ b/test/core/transport/test_suite/chaotic_good_fixture_helpers.h @@ -0,0 +1,54 @@ +// Copyright 2024 gRPC authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef GRPC_TEST_CORE_TRANSPORT_TEST_SUITE_CHAOTIC_GOOD_FIXTURE_HELPERS_H +#define GRPC_TEST_CORE_TRANSPORT_TEST_SUITE_CHAOTIC_GOOD_FIXTURE_HELPERS_H + +#include + +#include "absl/log/check.h" +#include "gmock/gmock.h" +#include "src/core/ext/transport/chaotic_good/client_transport.h" +#include "src/core/ext/transport/chaotic_good/server_transport.h" +#include "src/core/lib/event_engine/memory_allocator_factory.h" +#include "src/core/lib/event_engine/tcp_socket_utils.h" +#include "src/core/lib/resource_quota/resource_quota.h" +#include "src/core/lib/transport/promise_endpoint.h" +#include "test/core/transport/test_suite/transport_test.h" + +namespace grpc_core { + +class MockEndpointConfig + : public grpc_event_engine::experimental::EndpointConfig { + public: + MOCK_METHOD(absl::optional, GetInt, (absl::string_view key), + (const, override)); + MOCK_METHOD(absl::optional, GetString, + (absl::string_view key), (const, override)); + MOCK_METHOD(void*, GetVoidPointer, (absl::string_view key), + (const, override)); +}; + +struct EndpointPair { + PromiseEndpoint client; + PromiseEndpoint server; +}; + +EndpointPair CreateEndpointPair( + grpc_event_engine::experimental::FuzzingEventEngine* event_engine, + ResourceQuota* resource_quota, int port); + +} // namespace grpc_core + +#endif // GRPC_TEST_CORE_TRANSPORT_TEST_SUITE_CHAOTIC_GOOD_FIXTURE_HELPERS_H diff --git a/test/core/transport/test_suite/chaotic_good_single_connection_fixture.cc b/test/core/transport/test_suite/chaotic_good_single_connection_fixture.cc new file mode 100644 index 0000000000000..422f9549cb1d4 --- /dev/null +++ b/test/core/transport/test_suite/chaotic_good_single_connection_fixture.cc @@ -0,0 +1,43 @@ +// Copyright 2024 gRPC authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "test/core/transport/test_suite/chaotic_good_fixture_helpers.h" + +using grpc_event_engine::experimental::EventEngine; + +namespace grpc_core { + +TRANSPORT_FIXTURE(ChaoticGoodSingleConnection) { + auto resource_quota = MakeResourceQuota("test"); + EndpointPair control_endpoints = + CreateEndpointPair(event_engine.get(), resource_quota.get(), 1234); + EndpointPair data_endpoints = + CreateEndpointPair(event_engine.get(), resource_quota.get(), 4321); + auto channel_args = + ChannelArgs() + .SetObject(resource_quota) + .SetObject(std::static_pointer_cast(event_engine)); + auto client_transport = + MakeOrphanable( + std::move(control_endpoints.client), std::vector{}, + ChannelArgs().SetObject(resource_quota), event_engine); + auto server_transport = + MakeOrphanable( + channel_args, std::move(control_endpoints.server), + std::vector{}, event_engine); + return ClientAndServerTransportPair{std::move(client_transport), + std::move(server_transport)}; +} + +} // namespace grpc_core diff --git a/test/core/transport/test_suite/corpus/chaotic_good_single_connection/empty b/test/core/transport/test_suite/corpus/chaotic_good_single_connection/empty new file mode 100644 index 0000000000000..8b137891791fe --- /dev/null +++ b/test/core/transport/test_suite/corpus/chaotic_good_single_connection/empty @@ -0,0 +1 @@ + diff --git a/tools/run_tests/generated/tests.json b/tools/run_tests/generated/tests.json index 75ceed9930717..ebfbbcee2c583 100644 --- a/tools/run_tests/generated/tests.json +++ b/tools/run_tests/generated/tests.json @@ -1895,6 +1895,26 @@ ], "uses_polling": true }, + { + "args": [], + "benchmark": false, + "ci_platforms": [ + "linux", + "posix" + ], + "cpu_cost": 1.0, + "exclude_configs": [], + "exclude_iomgrs": [], + "flaky": false, + "gtest": true, + "language": "c++", + "name": "chaotic_good_single_connection_test", + "platforms": [ + "linux", + "posix" + ], + "uses_polling": false + }, { "args": [], "benchmark": false,