Fixes for async_end2end_test: Shutdown() can block

reviewable/pr11758/r1
Craig Tiller 8 years ago
parent 51cdc975f2
commit 31af436d96
  1. 6
      test/cpp/end2end/async_end2end_test.cc

@ -278,6 +278,7 @@ class AsyncEnd2endTest : public ::testing::TestWithParam<TestScenario> {
}
void TearDown() override {
gpr_tls_set(&g_is_async_end2end_test, 0);
server_->Shutdown();
void* ignored_tag;
bool ignored_ok;
@ -285,7 +286,6 @@ class AsyncEnd2endTest : public ::testing::TestWithParam<TestScenario> {
while (cq_->Next(&ignored_tag, &ignored_ok))
;
poll_overrider_.reset();
gpr_tls_set(&g_is_async_end2end_test, 0);
grpc_recycle_unused_port(port_);
}
@ -365,6 +365,7 @@ TEST_P(AsyncEnd2endTest, WaitAndShutdownTest) {
ResetStub();
SendRpc(1);
EXPECT_EQ(0, notify);
gpr_tls_set(&g_is_async_end2end_test, 0);
server_->Shutdown();
wait_thread.join();
EXPECT_EQ(1, notify);
@ -373,8 +374,9 @@ TEST_P(AsyncEnd2endTest, WaitAndShutdownTest) {
TEST_P(AsyncEnd2endTest, ShutdownThenWait) {
ResetStub();
SendRpc(1);
server_->Shutdown();
std::thread t([this]() { server_->Shutdown(); });
server_->Wait();
t.join();
}
// Test a simple RPC using the async version of Next

Loading…
Cancel
Save