diff options
author | David Garcia Quintas <dgq@google.com> | 2018-03-01 16:27:43 -0800 |
---|---|---|
committer | David Garcia Quintas <dgq@google.com> | 2018-03-01 16:39:52 -0800 |
commit | e3438c43a02374ff7ed661187817dd98136dcd7d (patch) | |
tree | fcc1e3578c848a619cfb0ca187576529107f1f5a /test/cpp/end2end/grpclb_end2end_test.cc | |
parent | fa0c3314cff8e1b5f300645b5e8043a3f3aed330 (diff) |
Fix and simplify SingleBalancerTest.InitiallyEmptyServerlist
Diffstat (limited to 'test/cpp/end2end/grpclb_end2end_test.cc')
-rw-r--r-- | test/cpp/end2end/grpclb_end2end_test.cc | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/test/cpp/end2end/grpclb_end2end_test.cc b/test/cpp/end2end/grpclb_end2end_test.cc index ec12788b52..ce06ac83e9 100644 --- a/test/cpp/end2end/grpclb_end2end_test.cc +++ b/test/cpp/end2end/grpclb_end2end_test.cc @@ -313,9 +313,7 @@ class BalancerServiceImpl : public BalancerService { int delay_ms) { gpr_log(GPR_INFO, "LB[%p]: sleeping for %d ms...", this, delay_ms); if (delay_ms > 0) { - gpr_sleep_until( - gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), - gpr_time_from_millis(delay_ms, GPR_TIMESPAN))); + gpr_sleep_until(grpc_timeout_milliseconds_to_deadline(delay_ms)); } gpr_log(GPR_INFO, "LB[%p]: Woke up! Sending response '%s'", this, response.DebugString().c_str()); @@ -536,10 +534,10 @@ class GrpclbEnd2endTest : public ::testing::Test { return status; } - void CheckRpcSendOk(const size_t times = 1) { + void CheckRpcSendOk(const size_t times = 1, const int timeout_ms = 1000) { for (size_t i = 0; i < times; ++i) { EchoResponse response; - const Status status = SendRpc(&response); + const Status status = SendRpc(&response, timeout_ms); EXPECT_TRUE(status.ok()) << "code=" << status.error_code() << " message=" << status.error_message(); EXPECT_EQ(response.message(), kRequestMessage_); @@ -693,8 +691,7 @@ TEST_F(SingleBalancerTest, SecureNamingDeathTest) { TEST_F(SingleBalancerTest, InitiallyEmptyServerlist) { SetNextResolutionAllBalancers(); const int kServerlistDelayMs = 500 * grpc_test_slowdown_factor(); - const int kCallDeadlineMs = 1000 * grpc_test_slowdown_factor(); - + const int kCallDeadlineMs = kServerlistDelayMs * 2; // First response is an empty serverlist, sent right away. ScheduleResponseForBalancer(0, LoadBalanceResponse(), 0); // Send non-empty serverlist only after kServerlistDelayMs @@ -704,20 +701,15 @@ TEST_F(SingleBalancerTest, InitiallyEmptyServerlist) { const auto t0 = system_clock::now(); // Client will block: LB will initially send empty serverlist. - CheckRpcSendOk(num_backends_); + CheckRpcSendOk(1, kCallDeadlineMs); const auto ellapsed_ms = std::chrono::duration_cast<std::chrono::milliseconds>( system_clock::now() - t0); // but eventually, the LB sends a serverlist update that allows the call to // proceed. The call delay must be larger than the delay in sending the - // populated serverlist but under the call's deadline. + // populated serverlist but under the call's deadline (which is enforced by + // the call's deadline). EXPECT_GT(ellapsed_ms.count(), kServerlistDelayMs); - EXPECT_LT(ellapsed_ms.count(), kCallDeadlineMs); - - // Each backend should have gotten 1 request. - for (size_t i = 0; i < backends_.size(); ++i) { - EXPECT_EQ(1U, backend_servers_[i].service_->request_count()); - } balancers_[0]->NotifyDoneWithServerlists(); // The balancer got a single request. EXPECT_EQ(1U, balancer_servers_[0].service_->request_count()); |