aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/cpp/interop/reconnect_interop_server.cc
diff options
context:
space:
mode:
authorGravatar Aaron Isotton <aaronisotton@google.com>2016-02-26 11:53:22 -0800
committerGravatar Aaron Isotton <aaronisotton@google.com>2016-03-08 14:21:31 -0800
commit24e69bf02afb0f4abdd637d1513e93e5aa227e7e (patch)
tree0d8cb64c15f1d96ef83cebab98a2ff0cd7c63cc4 /test/cpp/interop/reconnect_interop_server.cc
parent0e67d191267aa9bb641bbeaf11246878c3521e75 (diff)
Added a channel argument to set the maximum reconnect backoff duration. Extended the interop test to test the custom reconnect backoffs.
This closes #5377.
Diffstat (limited to 'test/cpp/interop/reconnect_interop_server.cc')
-rw-r--r--test/cpp/interop/reconnect_interop_server.cc10
1 files changed, 8 insertions, 2 deletions
diff --git a/test/cpp/interop/reconnect_interop_server.cc b/test/cpp/interop/reconnect_interop_server.cc
index 3602b8c2b0..97a5afc582 100644
--- a/test/cpp/interop/reconnect_interop_server.cc
+++ b/test/cpp/interop/reconnect_interop_server.cc
@@ -69,6 +69,7 @@ using grpc::Status;
using grpc::testing::Empty;
using grpc::testing::ReconnectService;
using grpc::testing::ReconnectInfo;
+using grpc::testing::ReconnectParams;
static bool got_sigint = false;
@@ -90,7 +91,8 @@ class ReconnectServiceImpl : public ReconnectService::Service {
void Poll(int seconds) { reconnect_server_poll(&tcp_server_, seconds); }
- Status Start(ServerContext* context, const Empty* request, Empty* response) {
+ Status Start(ServerContext* context, const ReconnectParams* request,
+ Empty* response) {
bool start_server = true;
std::unique_lock<std::mutex> lock(mu_);
while (serving_ && !shutdown_) {
@@ -103,6 +105,8 @@ class ReconnectServiceImpl : public ReconnectService::Service {
if (server_started_) {
start_server = false;
} else {
+ tcp_server_.max_reconnect_backoff_ms =
+ request->max_reconnect_backoff_ms();
server_started_ = true;
}
lock.unlock();
@@ -131,7 +135,9 @@ class ReconnectServiceImpl : public ReconnectService::Service {
const double kTransmissionDelay = 100.0;
const double kBackoffMultiplier = 1.6;
const double kJitterFactor = 0.2;
- const int kMaxBackoffMs = 120 * 1000;
+ const int kMaxBackoffMs = tcp_server_.max_reconnect_backoff_ms
+ ? tcp_server_.max_reconnect_backoff_ms
+ : 120 * 1000;
bool passed = true;
for (timestamp_list* cur = tcp_server_.head; cur && cur->next;
cur = cur->next) {