Wait for server shutdown_and_notify tag to complete before destroying server in stranded_event_test

pull/24041/head
Alexander Polcyn 4 years ago
parent 249c26148e
commit c1c487b80f
  1. 72
      CMakeLists.txt
  2. 4
      build_autogenerated.yaml
  3. 6
      test/core/iomgr/BUILD
  4. 10
      test/core/iomgr/stranded_event_test.cc

@ -891,9 +891,7 @@ if(gRPC_BUILD_TESTS)
add_dependencies(buildtests_cxx stats_test)
add_dependencies(buildtests_cxx status_metadata_test)
add_dependencies(buildtests_cxx status_util_test)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
add_dependencies(buildtests_cxx stranded_event_test)
endif()
add_dependencies(buildtests_cxx stranded_event_test)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
add_dependencies(buildtests_cxx streaming_throughput_test)
endif()
@ -14117,46 +14115,44 @@ target_link_libraries(status_util_test
endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
add_executable(stranded_event_test
test/core/end2end/cq_verifier.cc
test/core/iomgr/stranded_event_test.cc
third_party/googletest/googletest/src/gtest-all.cc
third_party/googletest/googlemock/src/gmock-all.cc
)
add_executable(stranded_event_test
test/core/end2end/cq_verifier.cc
test/core/iomgr/stranded_event_test.cc
third_party/googletest/googletest/src/gtest-all.cc
third_party/googletest/googlemock/src/gmock-all.cc
)
target_include_directories(stranded_event_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_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_include_directories(stranded_event_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_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(stranded_event_test
${_gRPC_PROTOBUF_LIBRARIES}
${_gRPC_ALLTARGETS_LIBRARIES}
grpc_test_util
grpc
gpr
address_sorting
upb
${_gRPC_GFLAGS_LIBRARIES}
)
target_link_libraries(stranded_event_test
${_gRPC_PROTOBUF_LIBRARIES}
${_gRPC_ALLTARGETS_LIBRARIES}
grpc_test_util
grpc
gpr
address_sorting
upb
${_gRPC_GFLAGS_LIBRARIES}
)
endif()
endif()
if(gRPC_BUILD_TESTS)
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)

@ -7276,10 +7276,6 @@ targets:
- gpr
- address_sorting
- upb
platforms:
- linux
- posix
- mac
- name: streaming_throughput_test
gtest: true
build: test

@ -375,12 +375,6 @@ grpc_cc_test(
],
flaky = True, # TODO(b/162087149)
language = "C++",
tags = [
# TODO(apolcyn): This test is failing on Windows at entry, enable once passing.
# See e.g. https://source.cloud.google.com/results/invocations/03e2c2bc-1742-48b4-a33d-b4cdaee5c8f9/targets
# E0717 23:43:56.391000000 5488 src/core/lib/surface/server.cc:1630] assertion failed: server->listeners_destroyed == server->listeners.size()
"no_windows",
],
deps = [
"//:gpr",
"//:grpc",

@ -224,8 +224,14 @@ class TestServer {
}
~TestServer() {
grpc_server_shutdown_and_notify(server_, cq_, nullptr);
thread_.join();
void* shutdown_and_notify_tag = this;
grpc_server_shutdown_and_notify(server_, cq_, shutdown_and_notify_tag);
grpc_event event = grpc_completion_queue_next(
cq_, gpr_inf_future(GPR_CLOCK_REALTIME), nullptr);
GPR_ASSERT(event.type == GRPC_OP_COMPLETE);
GPR_ASSERT(event.tag == shutdown_and_notify_tag);
GPR_ASSERT(event.success);
grpc_server_destroy(server_);
grpc_completion_queue_shutdown(cq_);
while (grpc_completion_queue_next(cq_, gpr_inf_future(GPR_CLOCK_REALTIME),
@ -243,7 +249,7 @@ class TestServer {
grpc_call_details_init(&call_details);
grpc_metadata_array request_metadata_recv;
grpc_metadata_array_init(&request_metadata_recv);
void* tag = this;
void* tag = &call_details;
grpc_call* call;
grpc_call_error error = grpc_server_request_call(
server_, &call, &call_details, &request_metadata_recv, cq_, cq_, tag);

Loading…
Cancel
Save