diff --git a/CMakeLists.txt b/CMakeLists.txt index e1cdd443aff..88429d02709 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -953,9 +953,6 @@ 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_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) @@ -1424,8 +1421,12 @@ if(gRPC_BUILD_TESTS) add_dependencies(buildtests_cxx test_core_security_ssl_credentials_test) add_dependencies(buildtests_cxx test_core_slice_slice_buffer_test) add_dependencies(buildtests_cxx test_core_slice_slice_test) + if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX) + add_dependencies(buildtests_cxx test_core_transport_test_suite_chaotic_good_test) + endif() add_dependencies(buildtests_cxx test_cpp_client_credentials_test) add_dependencies(buildtests_cxx test_cpp_end2end_ssl_credentials_test) + add_dependencies(buildtests_cxx test_cpp_ext_chaotic_good_test) add_dependencies(buildtests_cxx test_cpp_server_credentials_test) add_dependencies(buildtests_cxx test_cpp_util_slice_test) add_dependencies(buildtests_cxx test_cpp_util_time_test) @@ -10000,69 +10001,6 @@ target_link_libraries(channelz_service_test ) -endif() -if(gRPC_BUILD_TESTS) -if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX) - - add_executable(chaotic_good_test - ${_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/chaotic_good_transport.cc - src/core/ext/transport/chaotic_good/client_transport.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/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.cc - test/core/transport/test_suite/fixture.cc - test/core/transport/test_suite/no_op.cc - test/core/transport/test_suite/stress.cc - test/core/transport/test_suite/test.cc - test/core/transport/test_suite/test_main.cc - ) - if(WIN32 AND MSVC) - if(BUILD_SHARED_LIBS) - target_compile_definitions(chaotic_good_test - PRIVATE - "GPR_DLL_IMPORTS" - "GRPC_DLL_IMPORTS" - ) - endif() - endif() - target_compile_features(chaotic_good_test PUBLIC cxx_std_14) - target_include_directories(chaotic_good_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_test - ${_gRPC_ALLTARGETS_LIBRARIES} - gtest - ${_gRPC_PROTOBUF_LIBRARIES} - grpc_test_util - ) - - -endif() endif() if(gRPC_BUILD_TESTS) @@ -29848,6 +29786,69 @@ target_link_libraries(test_core_slice_slice_test ) +endif() +if(gRPC_BUILD_TESTS) +if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX) + + add_executable(test_core_transport_test_suite_chaotic_good_test + ${_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/chaotic_good_transport.cc + src/core/ext/transport/chaotic_good/client_transport.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/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.cc + test/core/transport/test_suite/fixture.cc + test/core/transport/test_suite/no_op.cc + test/core/transport/test_suite/stress.cc + test/core/transport/test_suite/test.cc + test/core/transport/test_suite/test_main.cc + ) + if(WIN32 AND MSVC) + if(BUILD_SHARED_LIBS) + target_compile_definitions(test_core_transport_test_suite_chaotic_good_test + PRIVATE + "GPR_DLL_IMPORTS" + "GRPC_DLL_IMPORTS" + ) + endif() + endif() + target_compile_features(test_core_transport_test_suite_chaotic_good_test PUBLIC cxx_std_14) + target_include_directories(test_core_transport_test_suite_chaotic_good_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(test_core_transport_test_suite_chaotic_good_test + ${_gRPC_ALLTARGETS_LIBRARIES} + gtest + ${_gRPC_PROTOBUF_LIBRARIES} + grpc_test_util + ) + + +endif() endif() if(gRPC_BUILD_TESTS) @@ -29953,6 +29954,60 @@ target_link_libraries(test_cpp_end2end_ssl_credentials_test ) +endif() +if(gRPC_BUILD_TESTS) + +add_executable(test_cpp_ext_chaotic_good_test + src/core/ext/transport/chaotic_good/chaotic_good_transport.cc + src/core/ext/transport/chaotic_good/client/chaotic_good_connector.cc + src/core/ext/transport/chaotic_good/client_transport.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/chaotic_good_server.cc + src/core/ext/transport/chaotic_good/server_transport.cc + src/core/ext/transport/chaotic_good/settings_metadata.cc + src/core/lib/transport/promise_endpoint.cc + src/cpp/ext/chaotic_good.cc + test/cpp/ext/chaotic_good_test.cc +) +if(WIN32 AND MSVC) + if(BUILD_SHARED_LIBS) + target_compile_definitions(test_cpp_ext_chaotic_good_test + PRIVATE + "GPR_DLL_IMPORTS" + "GRPC_DLL_IMPORTS" + "GRPCXX_DLL_IMPORTS" + ) + endif() +endif() +target_compile_features(test_cpp_ext_chaotic_good_test PUBLIC cxx_std_14) +target_include_directories(test_cpp_ext_chaotic_good_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(test_cpp_ext_chaotic_good_test + ${_gRPC_ALLTARGETS_LIBRARIES} + gtest + grpc++ + grpc_test_util +) + + endif() if(gRPC_BUILD_TESTS) diff --git a/build_autogenerated.yaml b/build_autogenerated.yaml index 5a5a3362e01..452e24b9d99 100644 --- a/build_autogenerated.yaml +++ b/build_autogenerated.yaml @@ -7574,51 +7574,6 @@ targets: - gtest - grpcpp_channelz - grpc++_test_util -- name: chaotic_good_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/frame.h - - src/core/ext/transport/chaotic_good/frame_header.h - - src/core/ext/transport/chaotic_good/server_transport.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/mpsc.h - - src/core/lib/promise/switch.h - - src/core/lib/promise/wait_set.h - - src/core/lib/transport/promise_endpoint.h - - test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.h - - test/core/transport/test_suite/fixture.h - - test/core/transport/test_suite/test.h - src: - - test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.proto - - src/core/ext/transport/chaotic_good/chaotic_good_transport.cc - - src/core/ext/transport/chaotic_good/client_transport.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/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.cc - - test/core/transport/test_suite/fixture.cc - - test/core/transport/test_suite/no_op.cc - - test/core/transport/test_suite/stress.cc - - test/core/transport/test_suite/test.cc - - test/core/transport/test_suite/test_main.cc - deps: - - gtest - - protobuf - - grpc_test_util - platforms: - - linux - - posix - uses_polling: false - name: check_gcp_environment_linux_test gtest: true build: test @@ -18868,6 +18823,51 @@ targets: - gtest - grpc uses_polling: false +- name: test_core_transport_test_suite_chaotic_good_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/frame.h + - src/core/ext/transport/chaotic_good/frame_header.h + - src/core/ext/transport/chaotic_good/server_transport.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/mpsc.h + - src/core/lib/promise/switch.h + - src/core/lib/promise/wait_set.h + - src/core/lib/transport/promise_endpoint.h + - test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.h + - test/core/transport/test_suite/fixture.h + - test/core/transport/test_suite/test.h + src: + - test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.proto + - src/core/ext/transport/chaotic_good/chaotic_good_transport.cc + - src/core/ext/transport/chaotic_good/client_transport.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/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.cc + - test/core/transport/test_suite/fixture.cc + - test/core/transport/test_suite/no_op.cc + - test/core/transport/test_suite/stress.cc + - test/core/transport/test_suite/test.cc + - test/core/transport/test_suite/test_main.cc + deps: + - gtest + - protobuf + - grpc_test_util + platforms: + - linux + - posix + uses_polling: false - name: test_cpp_client_credentials_test gtest: true build: test @@ -18897,6 +18897,44 @@ targets: deps: - gtest - grpc++_test_util +- name: test_cpp_ext_chaotic_good_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/chaotic_good_connector.h + - src/core/ext/transport/chaotic_good/client_transport.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/chaotic_good_server.h + - src/core/ext/transport/chaotic_good/server_transport.h + - src/core/ext/transport/chaotic_good/settings_metadata.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/mpsc.h + - src/core/lib/promise/switch.h + - src/core/lib/promise/wait_for_callback.h + - src/core/lib/promise/wait_set.h + - src/core/lib/transport/promise_endpoint.h + - src/cpp/ext/chaotic_good.h + src: + - src/core/ext/transport/chaotic_good/chaotic_good_transport.cc + - src/core/ext/transport/chaotic_good/client/chaotic_good_connector.cc + - src/core/ext/transport/chaotic_good/client_transport.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/chaotic_good_server.cc + - src/core/ext/transport/chaotic_good/server_transport.cc + - src/core/ext/transport/chaotic_good/settings_metadata.cc + - src/core/lib/transport/promise_endpoint.cc + - src/cpp/ext/chaotic_good.cc + - test/cpp/ext/chaotic_good_test.cc + deps: + - gtest + - grpc++ + - grpc_test_util - name: test_cpp_server_credentials_test gtest: true build: test diff --git a/src/cpp/ext/chaotic_good.cc b/src/cpp/ext/chaotic_good.cc index 8711a73ace0..4c9beac14e9 100644 --- a/src/cpp/ext/chaotic_good.cc +++ b/src/cpp/ext/chaotic_good.cc @@ -44,7 +44,6 @@ class ChaoticGoodInsecureChannelCredentialsImpl final auto channel = grpc::CreateChannelInternal( "", grpc_chaotic_good_channel_create(target.c_str(), &channel_args), std::move(interceptor_creators)); - grpc_channel_args_destroy(&channel_args); return channel; } diff --git a/test/cpp/ext/BUILD b/test/cpp/ext/BUILD new file mode 100644 index 00000000000..ecdba7d8f7e --- /dev/null +++ b/test/cpp/ext/BUILD @@ -0,0 +1,39 @@ +# 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. + +load("//bazel:grpc_build_system.bzl", "grpc_cc_test", "grpc_package") + +licenses(["notice"]) + +grpc_package( + name = "test/cpp/ext", + visibility = "tests", +) + +grpc_cc_test( + name = "chaotic_good_test", + srcs = [ + "chaotic_good_test.cc", + ], + external_deps = [ + "gtest", + ], + language = "C++", + tags = [], + deps = [ + "//:grpc++", + "//:grpcpp_chaotic_good", + "//test/core/util:grpc_test_util", + ], +) diff --git a/test/cpp/ext/chaotic_good_test.cc b/test/cpp/ext/chaotic_good_test.cc new file mode 100644 index 00000000000..71e49a5a71c --- /dev/null +++ b/test/cpp/ext/chaotic_good_test.cc @@ -0,0 +1,38 @@ +// 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 "src/cpp/ext/chaotic_good.h" + +#include "gtest/gtest.h" + +#include + +#include "test/core/util/test_config.h" + +namespace grpc { +namespace { + +TEST(ChaoticGoodTest, CreateChannel) { + auto creds = ChaoticGoodInsecureChannelCredentials(); + auto channel = CreateChannel("localhost:50051", creds); +} + +} // namespace +} // namespace grpc + +int main(int argc, char** argv) { + grpc::testing::TestEnvironment env(&argc, argv); + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} diff --git a/tools/run_tests/generated/tests.json b/tools/run_tests/generated/tests.json index fc1aae76b97..5bdfdcb4496 100644 --- a/tools/run_tests/generated/tests.json +++ b/tools/run_tests/generated/tests.json @@ -1945,26 +1945,6 @@ ], "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_test", - "platforms": [ - "linux", - "posix" - ], - "uses_polling": false - }, { "args": [], "benchmark": false, @@ -10531,6 +10511,26 @@ ], "uses_polling": false }, + { + "args": [], + "benchmark": false, + "ci_platforms": [ + "linux", + "posix" + ], + "cpu_cost": 1.0, + "exclude_configs": [], + "exclude_iomgrs": [], + "flaky": false, + "gtest": true, + "language": "c++", + "name": "test_core_transport_test_suite_chaotic_good_test", + "platforms": [ + "linux", + "posix" + ], + "uses_polling": false + }, { "args": [], "benchmark": false, @@ -10579,6 +10579,30 @@ ], "uses_polling": true }, + { + "args": [], + "benchmark": false, + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "cpu_cost": 1.0, + "exclude_configs": [], + "exclude_iomgrs": [], + "flaky": false, + "gtest": true, + "language": "c++", + "name": "test_cpp_ext_chaotic_good_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "uses_polling": true + }, { "args": [], "benchmark": false,