From f18a0b2ac1128c2f3b573afc3d0c51e6697e74ef Mon Sep 17 00:00:00 2001 From: Yash Tibrewal Date: Mon, 25 Oct 2021 14:45:14 -0700 Subject: [PATCH] C++ify channel_stack_builder_test (#27789) --- CMakeLists.txt | 64 +++++++++-------- build_autogenerated.yaml | 17 ++--- test/core/channel/BUILD | 3 + .../channel/channel_stack_builder_test.cc | 71 +++++++++++-------- tools/run_tests/generated/tests.json | 48 ++++++------- 5 files changed, 114 insertions(+), 89 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7e21b1cbdfb..472e9cf1a1b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -574,7 +574,6 @@ if(gRPC_BUILD_TESTS) add_dependencies(buildtests_c buffer_list_test) add_dependencies(buildtests_c channel_args_test) add_dependencies(buildtests_c channel_create_test) - add_dependencies(buildtests_c channel_stack_builder_test) add_dependencies(buildtests_c channel_stack_test) add_dependencies(buildtests_c check_gcp_environment_linux_test) add_dependencies(buildtests_c check_gcp_environment_windows_test) @@ -765,6 +764,7 @@ if(gRPC_BUILD_TESTS) add_dependencies(buildtests_cxx cfstream_test) add_dependencies(buildtests_cxx channel_arguments_test) add_dependencies(buildtests_cxx channel_filter_test) + add_dependencies(buildtests_cxx channel_stack_builder_test) add_dependencies(buildtests_cxx channel_trace_test) add_dependencies(buildtests_cxx channelz_registry_test) add_dependencies(buildtests_cxx channelz_service_test) @@ -4687,33 +4687,6 @@ target_link_libraries(channel_create_test ) -endif() -if(gRPC_BUILD_TESTS) - -add_executable(channel_stack_builder_test - test/core/channel/channel_stack_builder_test.cc -) - -target_include_directories(channel_stack_builder_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} -) - -target_link_libraries(channel_stack_builder_test - ${_gRPC_ALLTARGETS_LIBRARIES} - grpc_test_util -) - - endif() if(gRPC_BUILD_TESTS) @@ -8904,6 +8877,41 @@ target_link_libraries(channel_filter_test ) +endif() +if(gRPC_BUILD_TESTS) + +add_executable(channel_stack_builder_test + test/core/channel/channel_stack_builder_test.cc + third_party/googletest/googletest/src/gtest-all.cc + third_party/googletest/googlemock/src/gmock-all.cc +) + +target_include_directories(channel_stack_builder_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(channel_stack_builder_test + ${_gRPC_PROTOBUF_LIBRARIES} + ${_gRPC_ALLTARGETS_LIBRARIES} + grpc_test_util +) + + endif() if(gRPC_BUILD_TESTS) diff --git a/build_autogenerated.yaml b/build_autogenerated.yaml index 04a6ac80f8d..e32068b7118 100644 --- a/build_autogenerated.yaml +++ b/build_autogenerated.yaml @@ -3144,14 +3144,6 @@ targets: - test/core/surface/channel_create_test.cc deps: - grpc_test_util -- name: channel_stack_builder_test - build: test - language: c - headers: [] - src: - - test/core/channel/channel_stack_builder_test.cc - deps: - - grpc_test_util - name: channel_stack_test build: test language: c @@ -4919,6 +4911,15 @@ targets: - grpc++ - grpc_test_util uses_polling: false +- name: channel_stack_builder_test + gtest: true + build: test + language: c++ + headers: [] + src: + - test/core/channel/channel_stack_builder_test.cc + deps: + - grpc_test_util - name: channel_trace_test gtest: true build: test diff --git a/test/core/channel/BUILD b/test/core/channel/BUILD index 86897b4999a..14edcf4d787 100644 --- a/test/core/channel/BUILD +++ b/test/core/channel/BUILD @@ -45,6 +45,9 @@ grpc_cc_test( grpc_cc_test( name = "channel_stack_builder_test", srcs = ["channel_stack_builder_test.cc"], + external_deps = [ + "gtest", + ], language = "C++", deps = [ "//:gpr", diff --git a/test/core/channel/channel_stack_builder_test.cc b/test/core/channel/channel_stack_builder_test.cc index 88564ce95f7..f9ad5d96875 100644 --- a/test/core/channel/channel_stack_builder_test.cc +++ b/test/core/channel/channel_stack_builder_test.cc @@ -21,6 +21,8 @@ #include #include +#include + #include #include #include @@ -30,33 +32,37 @@ #include "src/core/lib/surface/channel_init.h" #include "test/core/util/test_config.h" -static grpc_error_handle channel_init_func( - grpc_channel_element* /*elem*/, grpc_channel_element_args* /*args*/) { +namespace grpc_core { +namespace testing { +namespace { + +grpc_error_handle ChannelInitFunc(grpc_channel_element* /*elem*/, + grpc_channel_element_args* /*args*/) { return GRPC_ERROR_NONE; } -static grpc_error_handle call_init_func( - grpc_call_element* /*elem*/, const grpc_call_element_args* /*args*/) { +grpc_error_handle CallInitFunc(grpc_call_element* /*elem*/, + const grpc_call_element_args* /*args*/) { return GRPC_ERROR_NONE; } -static void channel_destroy_func(grpc_channel_element* /*elem*/) {} +void ChannelDestroyFunc(grpc_channel_element* /*elem*/) {} -static void call_destroy_func(grpc_call_element* /*elem*/, - const grpc_call_final_info* /*final_info*/, - grpc_closure* /*ignored*/) {} +void CallDestroyFunc(grpc_call_element* /*elem*/, + const grpc_call_final_info* /*final_info*/, + grpc_closure* /*ignored*/) {} bool g_replacement_fn_called = false; bool g_original_fn_called = false; -void set_arg_once_fn(grpc_channel_stack* /*channel_stack*/, - grpc_channel_element* /*elem*/, void* arg) { +void SetArgOnceFn(grpc_channel_stack* /*channel_stack*/, + grpc_channel_element* /*elem*/, void* arg) { bool* called = static_cast(arg); // Make sure this function is only called once per arg. GPR_ASSERT(*called == false); *called = true; } -static void test_channel_stack_builder_filter_replace(void) { +TEST(ChannelStackBuilderTest, ReplaceFilter) { grpc_channel* channel = grpc_insecure_channel_create("target name isn't used", nullptr, nullptr); GPR_ASSERT(channel != nullptr); @@ -71,12 +77,12 @@ const grpc_channel_filter replacement_filter = { grpc_call_next_op, grpc_channel_next_op, 0, - call_init_func, + CallInitFunc, grpc_call_stack_ignore_set_pollset_or_pollset_set, - call_destroy_func, + CallDestroyFunc, 0, - channel_init_func, - channel_destroy_func, + ChannelInitFunc, + ChannelDestroyFunc, grpc_channel_next_get_info, "filter_name"}; @@ -84,40 +90,47 @@ const grpc_channel_filter original_filter = { grpc_call_next_op, grpc_channel_next_op, 0, - call_init_func, + CallInitFunc, grpc_call_stack_ignore_set_pollset_or_pollset_set, - call_destroy_func, + CallDestroyFunc, 0, - channel_init_func, - channel_destroy_func, + ChannelInitFunc, + ChannelDestroyFunc, grpc_channel_next_get_info, "filter_name"}; -static bool add_replacement_filter(grpc_channel_stack_builder* builder) { +static bool AddReplacementFilter(grpc_channel_stack_builder* builder) { // Get rid of any other version of the filter, as determined by having the // same name. GPR_ASSERT(grpc_channel_stack_builder_remove_filter(builder, replacement_filter.name)); return grpc_channel_stack_builder_prepend_filter( - builder, &replacement_filter, set_arg_once_fn, &g_replacement_fn_called); + builder, &replacement_filter, SetArgOnceFn, &g_replacement_fn_called); } -static bool add_original_filter(grpc_channel_stack_builder* builder) { +bool AddOriginalFilter(grpc_channel_stack_builder* builder) { return grpc_channel_stack_builder_prepend_filter( - builder, &original_filter, set_arg_once_fn, &g_original_fn_called); + builder, &original_filter, SetArgOnceFn, &g_original_fn_called); } +} // namespace +} // namespace testing +} // namespace grpc_core + int main(int argc, char** argv) { + ::testing::InitGoogleTest(&argc, argv); grpc::testing::TestEnvironment env(argc, argv); grpc_core::CoreConfiguration::RegisterBuilder( [](grpc_core::CoreConfiguration::Builder* builder) { - builder->channel_init()->RegisterStage(GRPC_CLIENT_CHANNEL, INT_MAX, - add_original_filter); - builder->channel_init()->RegisterStage(GRPC_CLIENT_CHANNEL, INT_MAX, - add_replacement_filter); + builder->channel_init()->RegisterStage( + GRPC_CLIENT_CHANNEL, INT_MAX, + grpc_core::testing::AddOriginalFilter); + builder->channel_init()->RegisterStage( + GRPC_CLIENT_CHANNEL, INT_MAX, + grpc_core::testing::AddReplacementFilter); }); grpc_init(); - test_channel_stack_builder_filter_replace(); + int ret = RUN_ALL_TESTS(); grpc_shutdown(); - return 0; + return ret; } diff --git a/tools/run_tests/generated/tests.json b/tools/run_tests/generated/tests.json index 6bbed15c436..bac4b2297a1 100644 --- a/tools/run_tests/generated/tests.json +++ b/tools/run_tests/generated/tests.json @@ -621,30 +621,6 @@ ], "uses_polling": true }, - { - "args": [], - "benchmark": false, - "ci_platforms": [ - "linux", - "mac", - "posix", - "windows" - ], - "cpu_cost": 1.0, - "exclude_configs": [], - "exclude_iomgrs": [], - "flaky": false, - "gtest": false, - "language": "c", - "name": "channel_stack_builder_test", - "platforms": [ - "linux", - "mac", - "posix", - "windows" - ], - "uses_polling": true - }, { "args": [], "benchmark": false, @@ -3691,6 +3667,30 @@ ], "uses_polling": false }, + { + "args": [], + "benchmark": false, + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "cpu_cost": 1.0, + "exclude_configs": [], + "exclude_iomgrs": [], + "flaky": false, + "gtest": true, + "language": "c++", + "name": "channel_stack_builder_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "uses_polling": true + }, { "args": [], "benchmark": false,