summaryrefslogtreecommitdiff
path: root/src/mongo/db/repl/replication_coordinator_impl_elect_test.cpp
diff options
context:
space:
mode:
authorAndy Schwerin <Andy Schwerin schwerin@mongodb.com>2017-04-13 17:29:36 -0400
committerAndy Schwerin <Andy Schwerin schwerin@mongodb.com>2017-04-18 16:16:57 -0400
commitcd8742a208ae24bd8a8189b4ec2a616089fb80f2 (patch)
treebe4a29b9b8792390f76e4a94cc0b2676479fd2a1 /src/mongo/db/repl/replication_coordinator_impl_elect_test.cpp
parentb4d45834ef1a8fe2a7e240c7b262736804b5bb93 (diff)
downloadmongo-cd8742a208ae24bd8a8189b4ec2a616089fb80f2.tar.gz
SERVER-28848 Change ReplicationCoordinatorImpl unit tests so as not to rely on execution ordering characteristics of ReplicationExecutor.
Diffstat (limited to 'src/mongo/db/repl/replication_coordinator_impl_elect_test.cpp')
-rw-r--r--src/mongo/db/repl/replication_coordinator_impl_elect_test.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/mongo/db/repl/replication_coordinator_impl_elect_test.cpp b/src/mongo/db/repl/replication_coordinator_impl_elect_test.cpp
index 2f8bea4a620..5c09c7effff 100644
--- a/src/mongo/db/repl/replication_coordinator_impl_elect_test.cpp
+++ b/src/mongo/db/repl/replication_coordinator_impl_elect_test.cpp
@@ -498,25 +498,27 @@ TEST_F(ReplCoordElectTest, StepsDownRemoteIfNodeHasHigherPriorityThanCurrentPrim
ReplSetHeartbeatArgs hbArgs;
if (hbArgs.initialize(request.cmdObj).isOK()) {
ReplSetHeartbeatResponse hbResp;
+ Date_t responseDate = net->now();
hbResp.setSetName(config.getReplSetName());
if (request.target == HostAndPort("node2", 12345)) {
hbResp.setState(MemberState::RS_PRIMARY);
} else {
hbResp.setState(MemberState::RS_SECONDARY);
+ responseDate += Milliseconds{1};
}
hbResp.setConfigVersion(config.getConfigVersion());
auto response = makeResponseStatus(hbResp.toBSON(replCoord->isV1ElectionProtocol()));
- net->scheduleResponse(noi, net->now(), response);
+ net->scheduleResponse(noi, responseDate, response);
} else {
error() << "Black holing unexpected request to " << request.target << ": "
<< request.cmdObj;
net->blackHole(noi);
}
}
- net->runReadyNetworkOperations();
- net->exitNetwork();
+ const auto afterHeartbeatsProcessed = net->now() + Milliseconds{1};
+ net->runUntil(afterHeartbeatsProcessed);
+ ASSERT_EQ(afterHeartbeatsProcessed, net->now());
- net->enterNetwork();
ASSERT_TRUE(net->hasReadyRequests());
auto noi = net->getNextReadyRequest();
auto&& request = noi->getRequest();