C++ify channel_stack_builder_test (#27789)

pull/27715/head^2
Yash Tibrewal 3 years ago committed by GitHub
parent 49fd4bdafa
commit f18a0b2ac1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 64
      CMakeLists.txt
  2. 17
      build_autogenerated.yaml
  3. 3
      test/core/channel/BUILD
  4. 71
      test/core/channel/channel_stack_builder_test.cc
  5. 48
      tools/run_tests/generated/tests.json

64
CMakeLists.txt generated

@ -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)

@ -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

@ -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",

@ -21,6 +21,8 @@
#include <limits.h>
#include <string.h>
#include <gtest/gtest.h>
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/string_util.h>
@ -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<bool*>(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;
}

@ -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,

Loading…
Cancel
Save