diff options
author | Andy Schwerin <Andy Schwerin schwerin@mongodb.com> | 2017-04-13 17:29:36 -0400 |
---|---|---|
committer | Andy Schwerin <Andy Schwerin schwerin@mongodb.com> | 2017-04-18 16:16:57 -0400 |
commit | cd8742a208ae24bd8a8189b4ec2a616089fb80f2 (patch) | |
tree | be4a29b9b8792390f76e4a94cc0b2676479fd2a1 /src/mongo/db/repl/replication_coordinator_impl_elect_test.cpp | |
parent | b4d45834ef1a8fe2a7e240c7b262736804b5bb93 (diff) | |
download | mongo-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.cpp | 10 |
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(); |