diff options
author | 2015-09-22 08:28:22 -0700 | |
---|---|---|
committer | 2015-09-22 08:28:22 -0700 | |
commit | f9dd54c2ebd1eeba572d3264a41c352884608e8e (patch) | |
tree | dff2c0c892af24d282fe10528126bc9d2f8dd482 /test/cpp/end2end | |
parent | 786522166ed35f93d64c316c0e4911a74d782be0 (diff) | |
parent | 5e8abedd6110d58067980a2b089aab48311317a0 (diff) |
Merge pull request #3378 from yang-g/connection_failure_detection
remove connectivity watcher from interested party early
Diffstat (limited to 'test/cpp/end2end')
-rw-r--r-- | test/cpp/end2end/end2end_test.cc | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/test/cpp/end2end/end2end_test.cc b/test/cpp/end2end/end2end_test.cc index bfe799bd15..b3cfcd51a7 100644 --- a/test/cpp/end2end/end2end_test.cc +++ b/test/cpp/end2end/end2end_test.cc @@ -1149,6 +1149,24 @@ TEST_F(End2endTest, ChannelState) { EXPECT_EQ(GRPC_CHANNEL_CONNECTING, channel_->GetState(false)); } +// Takes 10s. +TEST_F(End2endTest, ChannelStateTimeout) { + int port = grpc_pick_unused_port_or_die(); + std::ostringstream server_address; + server_address << "127.0.0.1:" << port; + // Channel to non-existing server + auto channel = CreateChannel(server_address.str(), InsecureCredentials()); + // Start IDLE + EXPECT_EQ(GRPC_CHANNEL_IDLE, channel->GetState(true)); + + auto state = GRPC_CHANNEL_IDLE; + for (int i = 0; i < 10; i++) { + channel->WaitForStateChange(state, std::chrono::system_clock::now() + + std::chrono::seconds(1)); + state = channel->GetState(false); + } +} + // Talking to a non-existing service. TEST_F(End2endTest, NonExistingService) { ResetChannel(); |