summaryrefslogtreecommitdiff
path: root/src/mongo/s/catalog/dist_lock_catalog_impl_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/s/catalog/dist_lock_catalog_impl_test.cpp')
-rw-r--r--src/mongo/s/catalog/dist_lock_catalog_impl_test.cpp1279
1 files changed, 641 insertions, 638 deletions
diff --git a/src/mongo/s/catalog/dist_lock_catalog_impl_test.cpp b/src/mongo/s/catalog/dist_lock_catalog_impl_test.cpp
index e10a582e4a1..bdbe5bd9059 100644
--- a/src/mongo/s/catalog/dist_lock_catalog_impl_test.cpp
+++ b/src/mongo/s/catalog/dist_lock_catalog_impl_test.cpp
@@ -44,20 +44,21 @@ f * Copyright (C) 2015 MongoDB Inc.
namespace mongo {
namespace {
- const HostAndPort dummyHost("dummy", 123);
- const Milliseconds kWTimeout(100);
+const HostAndPort dummyHost("dummy", 123);
+const Milliseconds kWTimeout(100);
- const auto noTest = [](const RemoteCommandRequest& request) {};
+const auto noTest = [](const RemoteCommandRequest& request) {};
- TEST(DistLockCatalogImpl, BasicPing) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, BasicPing) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- executor.setNextExpectedCommand([](const RemoteCommandRequest& request) {
+ executor.setNextExpectedCommand(
+ [](const RemoteCommandRequest& request) {
ASSERT_EQUALS(dummyHost, request.target);
ASSERT_EQUALS("config", request.dbname);
@@ -81,92 +82,93 @@ namespace {
_id: "abcd",
ping: { $date: "2014-03-11T09:17:18.098Z" }
}
- })"), Milliseconds(0)));
+ })"),
+ Milliseconds(0)));
- Date_t ping(dateFromISOString("2014-03-11T09:17:18.098Z").getValue());
- auto status = catalog.ping("abcd", ping);
- ASSERT_OK(status);
- }
+ Date_t ping(dateFromISOString("2014-03-11T09:17:18.098Z").getValue());
+ auto status = catalog.ping("abcd", ping);
+ ASSERT_OK(status);
+}
- TEST(DistLockCatalogImpl, PingTargetError) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, PingTargetError) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue({ErrorCodes::InternalError, "can't target"});
+ targeter.setFindHostReturnValue({ErrorCodes::InternalError, "can't target"});
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- auto status = catalog.ping("abcd", Date_t::now());
- ASSERT_NOT_OK(status);
- }
+ auto status = catalog.ping("abcd", Date_t::now());
+ ASSERT_NOT_OK(status);
+}
- TEST(DistLockCatalogImpl, PingRunnerError) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, PingRunnerError) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- executor.setNextExpectedCommand(noTest, {ErrorCodes::InternalError, "Bad"});
+ executor.setNextExpectedCommand(noTest, {ErrorCodes::InternalError, "Bad"});
- auto status = catalog.ping("abcd", Date_t::now());
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::InternalError, status.code());
- ASSERT_FALSE(status.reason().empty());
- }
+ auto status = catalog.ping("abcd", Date_t::now());
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::InternalError, status.code());
+ ASSERT_FALSE(status.reason().empty());
+}
- TEST(DistLockCatalogImpl, PingCommandError) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, PingCommandError) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- BSONObj returnObj(fromjson(R"({
+ BSONObj returnObj(fromjson(R"({
ok: 0,
errmsg: "bad",
code: 9
})"));
- executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
+ executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
- auto status = catalog.ping("abcd", Date_t::now());
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::FailedToParse, status.code());
- ASSERT_FALSE(status.reason().empty());
- }
+ auto status = catalog.ping("abcd", Date_t::now());
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::FailedToParse, status.code());
+ ASSERT_FALSE(status.reason().empty());
+}
- TEST(DistLockCatalogImpl, PingWriteError) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, PingWriteError) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- BSONObj returnObj(fromjson(R"({
+ BSONObj returnObj(fromjson(R"({
ok: 0,
code: 11000,
errmsg: "E11000 duplicate key error"
})"));
- executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
+ executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
- auto status = catalog.ping("abcd", Date_t::now());
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::DuplicateKey, status.code());
- ASSERT_FALSE(status.reason().empty());
- }
+ auto status = catalog.ping("abcd", Date_t::now());
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::DuplicateKey, status.code());
+ ASSERT_FALSE(status.reason().empty());
+}
- TEST(DistLockCatalogImpl, PingWriteConcernError) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, PingWriteConcernError) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- BSONObj returnObj(fromjson(R"({
+ BSONObj returnObj(fromjson(R"({
ok: 1,
value: null,
writeConcernError: {
@@ -174,23 +176,23 @@ namespace {
errmsg: "waiting for replication timed out"
}
})"));
- executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
+ executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
- auto status = catalog.ping("abcd", Date_t::now());
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::WriteConcernFailed, status.code());
- ASSERT_FALSE(status.reason().empty());
- }
+ auto status = catalog.ping("abcd", Date_t::now());
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::WriteConcernFailed, status.code());
+ ASSERT_FALSE(status.reason().empty());
+}
- TEST(DistLockCatalogImpl, PingUnsupportedWriteConcernResponse) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, PingUnsupportedWriteConcernResponse) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- BSONObj returnObj(fromjson(R"({
+ BSONObj returnObj(fromjson(R"({
ok: 1,
value: null,
writeConcernError: {
@@ -198,45 +200,47 @@ namespace {
errmsg: "waiting for replication timed out"
}
})"));
- executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
+ executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
- auto status = catalog.ping("abcd", Date_t::now());
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::UnsupportedFormat, status.code());
- ASSERT_FALSE(status.reason().empty());
- }
+ auto status = catalog.ping("abcd", Date_t::now());
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::UnsupportedFormat, status.code());
+ ASSERT_FALSE(status.reason().empty());
+}
- TEST(DistLockCatalogImpl, PingUnsupportedResponseFormat) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, PingUnsupportedResponseFormat) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- executor.setNextExpectedCommand(noTest,
- RemoteCommandResponse(BSON("ok" << 1 << "value" << "NaN"), Milliseconds(0)));
+ executor.setNextExpectedCommand(noTest,
+ RemoteCommandResponse(BSON("ok" << 1 << "value"
+ << "NaN"),
+ Milliseconds(0)));
- auto status = catalog.ping("abcd", Date_t::now());
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::UnsupportedFormat, status.code());
- }
+ auto status = catalog.ping("abcd", Date_t::now());
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::UnsupportedFormat, status.code());
+}
- TEST(DistLockCatalogImpl, GrabLockNoOp) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, GrabLockNoOp) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- BSONObj responseObj(fromjson("{ ok: 1, value: null }"));
+ BSONObj responseObj(fromjson("{ ok: 1, value: null }"));
- executor.setNextExpectedCommand([](const RemoteCommandRequest& request) {
- ASSERT_EQUALS(dummyHost, request.target);
- ASSERT_EQUALS("config", request.dbname);
+ executor.setNextExpectedCommand([](const RemoteCommandRequest& request) {
+ ASSERT_EQUALS(dummyHost, request.target);
+ ASSERT_EQUALS("config", request.dbname);
- BSONObj expectedCmd(fromjson(R"({
+ BSONObj expectedCmd(fromjson(R"({
findAndModify: "locks",
query: { _id: "test", state: 0 },
update: {
@@ -254,29 +258,26 @@ namespace {
writeConcern: { w: "majority", j: true, wtimeout: 100 }
})"));
- ASSERT_EQUALS(expectedCmd, request.cmdObj);
- },
- RemoteCommandResponse(responseObj, Milliseconds(0)));
-
- OID myID("555f80be366c194b13fb0372");
- Date_t now(dateFromISOString("2015-05-22T19:17:18.098Z").getValue());
- auto resultStatus = catalog.grabLock("test", myID, "me",
- "mongos", now, "because").getStatus();
+ ASSERT_EQUALS(expectedCmd, request.cmdObj);
+ }, RemoteCommandResponse(responseObj, Milliseconds(0)));
- ASSERT_NOT_OK(resultStatus);
- ASSERT_EQUALS(ErrorCodes::LockStateChangeFailed, resultStatus.code());
+ OID myID("555f80be366c194b13fb0372");
+ Date_t now(dateFromISOString("2015-05-22T19:17:18.098Z").getValue());
+ auto resultStatus = catalog.grabLock("test", myID, "me", "mongos", now, "because").getStatus();
- }
+ ASSERT_NOT_OK(resultStatus);
+ ASSERT_EQUALS(ErrorCodes::LockStateChangeFailed, resultStatus.code());
+}
- TEST(DistLockCatalogImpl, GrabLockWithNewDoc) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, GrabLockWithNewDoc) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- BSONObj responseObj(fromjson(R"({
+ BSONObj responseObj(fromjson(R"({
lastErrorObject: {
updatedExisting: false,
n: 1,
@@ -294,11 +295,11 @@ namespace {
ok: 1
})"));
- executor.setNextExpectedCommand([](const RemoteCommandRequest& request) {
- ASSERT_EQUALS(dummyHost, request.target);
- ASSERT_EQUALS("config", request.dbname);
+ executor.setNextExpectedCommand([](const RemoteCommandRequest& request) {
+ ASSERT_EQUALS(dummyHost, request.target);
+ ASSERT_EQUALS("config", request.dbname);
- BSONObj expectedCmd(fromjson(R"({
+ BSONObj expectedCmd(fromjson(R"({
findAndModify: "locks",
query: { _id: "test", state: 0 },
update: {
@@ -316,103 +317,102 @@ namespace {
writeConcern: { w: "majority", j: true, wtimeout: 100 }
})"));
- ASSERT_EQUALS(expectedCmd, request.cmdObj);
- },
- RemoteCommandResponse(responseObj, Milliseconds(0)));
+ ASSERT_EQUALS(expectedCmd, request.cmdObj);
+ }, RemoteCommandResponse(responseObj, Milliseconds(0)));
- OID myID("555f80be366c194b13fb0372");
- Date_t now(dateFromISOString("2015-05-22T19:17:18.098Z").getValue());
- auto resultStatus = catalog.grabLock("test", myID, "me", "mongos", now, "because");
- ASSERT_OK(resultStatus.getStatus());
+ OID myID("555f80be366c194b13fb0372");
+ Date_t now(dateFromISOString("2015-05-22T19:17:18.098Z").getValue());
+ auto resultStatus = catalog.grabLock("test", myID, "me", "mongos", now, "because");
+ ASSERT_OK(resultStatus.getStatus());
- const auto& lockDoc = resultStatus.getValue();
- ASSERT_TRUE(lockDoc.isValid(nullptr));
- ASSERT_EQUALS("test", lockDoc.getName());
- ASSERT_EQUALS(myID, lockDoc.getLockID());
- ASSERT_EQUALS("me", lockDoc.getWho());
- ASSERT_EQUALS("mongos", lockDoc.getProcess());
- ASSERT_EQUALS("because", lockDoc.getWhy());
- }
+ const auto& lockDoc = resultStatus.getValue();
+ ASSERT_TRUE(lockDoc.isValid(nullptr));
+ ASSERT_EQUALS("test", lockDoc.getName());
+ ASSERT_EQUALS(myID, lockDoc.getLockID());
+ ASSERT_EQUALS("me", lockDoc.getWho());
+ ASSERT_EQUALS("mongos", lockDoc.getProcess());
+ ASSERT_EQUALS("because", lockDoc.getWhy());
+}
- TEST(DistLockCatalogImpl, GrabLockTargetError) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, GrabLockTargetError) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue({ErrorCodes::InternalError, "can't target"});
+ targeter.setFindHostReturnValue({ErrorCodes::InternalError, "can't target"});
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- auto status = catalog.grabLock("", OID::gen(), "", "", Date_t::now(), "").getStatus();
- ASSERT_NOT_OK(status);
- }
+ auto status = catalog.grabLock("", OID::gen(), "", "", Date_t::now(), "").getStatus();
+ ASSERT_NOT_OK(status);
+}
- TEST(DistLockCatalogImpl, GrabLockRunnerError) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, GrabLockRunnerError) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- executor.setNextExpectedCommand(noTest, {ErrorCodes::InternalError, "Bad"});
+ executor.setNextExpectedCommand(noTest, {ErrorCodes::InternalError, "Bad"});
- auto status = catalog.grabLock("", OID::gen(), "", "", Date_t::now(), "").getStatus();
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::InternalError, status.code());
- ASSERT_FALSE(status.reason().empty());
- }
+ auto status = catalog.grabLock("", OID::gen(), "", "", Date_t::now(), "").getStatus();
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::InternalError, status.code());
+ ASSERT_FALSE(status.reason().empty());
+}
- TEST(DistLockCatalogImpl, GrabLockCommandError) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, GrabLockCommandError) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- BSONObj returnObj(fromjson(R"({
+ BSONObj returnObj(fromjson(R"({
ok: 0,
errmsg: "bad",
code: 9
})"));
- executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
+ executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
- auto status = catalog.grabLock("", OID::gen(), "", "", Date_t::now(), "").getStatus();
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::FailedToParse, status.code());
- ASSERT_FALSE(status.reason().empty());
- }
+ auto status = catalog.grabLock("", OID::gen(), "", "", Date_t::now(), "").getStatus();
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::FailedToParse, status.code());
+ ASSERT_FALSE(status.reason().empty());
+}
- TEST(DistLockCatalogImpl, GrabLockWriteError) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, GrabLockWriteError) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- BSONObj returnObj(fromjson(R"({
+ BSONObj returnObj(fromjson(R"({
ok: 0,
code: 11000,
errmsg: "E11000 duplicate key error"
})"));
- executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
+ executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
- auto status = catalog.grabLock("", OID::gen(), "", "", Date_t::now(), "").getStatus();
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::DuplicateKey, status.code());
- ASSERT_FALSE(status.reason().empty());
- }
+ auto status = catalog.grabLock("", OID::gen(), "", "", Date_t::now(), "").getStatus();
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::DuplicateKey, status.code());
+ ASSERT_FALSE(status.reason().empty());
+}
- TEST(DistLockCatalogImpl, GrabLockWriteConcernError) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, GrabLockWriteConcernError) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- BSONObj returnObj(fromjson(R"({
+ BSONObj returnObj(fromjson(R"({
ok: 1,
value: null,
writeConcernError: {
@@ -420,23 +420,23 @@ namespace {
errmsg: "waiting for replication timed out"
}
})"));
- executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
+ executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
- auto status = catalog.grabLock("", OID::gen(), "", "", Date_t::now(), "").getStatus();
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::WriteConcernFailed, status.code());
- ASSERT_FALSE(status.reason().empty());
- }
+ auto status = catalog.grabLock("", OID::gen(), "", "", Date_t::now(), "").getStatus();
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::WriteConcernFailed, status.code());
+ ASSERT_FALSE(status.reason().empty());
+}
- TEST(DistLockCatalogImpl, GrabLockUnsupportedWriteConcernResponse) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, GrabLockUnsupportedWriteConcernResponse) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- BSONObj returnObj(fromjson(R"({
+ BSONObj returnObj(fromjson(R"({
ok: 1,
value: null,
writeConcernError: {
@@ -444,46 +444,47 @@ namespace {
errmsg: "waiting for replication timed out"
}
})"));
- executor.setNextExpectedCommand(noTest,
- RemoteCommandResponse(returnObj, Milliseconds(0)));
+ executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
- auto status = catalog.grabLock("", OID::gen(), "", "", Date_t::now(), "").getStatus();
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::UnsupportedFormat, status.code());
- ASSERT_FALSE(status.reason().empty());
- }
+ auto status = catalog.grabLock("", OID::gen(), "", "", Date_t::now(), "").getStatus();
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::UnsupportedFormat, status.code());
+ ASSERT_FALSE(status.reason().empty());
+}
- TEST(DistLockCatalogImpl, GrabLockUnsupportedResponseFormat) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, GrabLockUnsupportedResponseFormat) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- executor.setNextExpectedCommand(noTest,
- RemoteCommandResponse(BSON("ok" << 1 << "value" << "NaN"), Milliseconds(0)));
+ executor.setNextExpectedCommand(noTest,
+ RemoteCommandResponse(BSON("ok" << 1 << "value"
+ << "NaN"),
+ Milliseconds(0)));
- auto status = catalog.grabLock("", OID::gen(), "", "", Date_t::now(), "").getStatus();
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::UnsupportedFormat, status.code());
- }
+ auto status = catalog.grabLock("", OID::gen(), "", "", Date_t::now(), "").getStatus();
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::UnsupportedFormat, status.code());
+}
- TEST(DistLockCatalogImpl, OvertakeLockNoOp) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, OvertakeLockNoOp) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- BSONObj responseObj(fromjson("{ ok: 1, value: null }"));
+ BSONObj responseObj(fromjson("{ ok: 1, value: null }"));
- executor.setNextExpectedCommand([](const RemoteCommandRequest& request) {
- ASSERT_EQUALS(dummyHost, request.target);
- ASSERT_EQUALS("config", request.dbname);
+ executor.setNextExpectedCommand([](const RemoteCommandRequest& request) {
+ ASSERT_EQUALS(dummyHost, request.target);
+ ASSERT_EQUALS("config", request.dbname);
- BSONObj expectedCmd(fromjson(R"({
+ BSONObj expectedCmd(fromjson(R"({
findAndModify: "locks",
query: {
$or: [
@@ -505,29 +506,29 @@ namespace {
writeConcern: { w: "majority", j: true, wtimeout: 100 }
})"));
- ASSERT_EQUALS(expectedCmd, request.cmdObj);
- },
- RemoteCommandResponse(responseObj, Milliseconds(0)));
+ ASSERT_EQUALS(expectedCmd, request.cmdObj);
+ }, RemoteCommandResponse(responseObj, Milliseconds(0)));
- OID myID("555f80be366c194b13fb0372");
- OID currentOwner("555f99712c99a78c5b083358");
- Date_t now(dateFromISOString("2015-05-22T19:17:18.098Z").getValue());
- auto resultStatus = catalog.overtakeLock("test", myID, currentOwner,
- "me", "mongos", now, "because").getStatus();
+ OID myID("555f80be366c194b13fb0372");
+ OID currentOwner("555f99712c99a78c5b083358");
+ Date_t now(dateFromISOString("2015-05-22T19:17:18.098Z").getValue());
+ auto resultStatus =
+ catalog.overtakeLock("test", myID, currentOwner, "me", "mongos", now, "because")
+ .getStatus();
- ASSERT_NOT_OK(resultStatus);
- ASSERT_EQUALS(ErrorCodes::LockStateChangeFailed, resultStatus.code());
- }
+ ASSERT_NOT_OK(resultStatus);
+ ASSERT_EQUALS(ErrorCodes::LockStateChangeFailed, resultStatus.code());
+}
- TEST(DistLockCatalogImpl, OvertakeLockWithNewDoc) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, OvertakeLockWithNewDoc) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- BSONObj responseObj(fromjson(R"({
+ BSONObj responseObj(fromjson(R"({
lastErrorObject: {
updatedExisting: false,
n: 1,
@@ -545,11 +546,11 @@ namespace {
ok: 1
})"));
- executor.setNextExpectedCommand([](const RemoteCommandRequest& request) {
- ASSERT_EQUALS(dummyHost, request.target);
- ASSERT_EQUALS("config", request.dbname);
+ executor.setNextExpectedCommand([](const RemoteCommandRequest& request) {
+ ASSERT_EQUALS(dummyHost, request.target);
+ ASSERT_EQUALS("config", request.dbname);
- BSONObj expectedCmd(fromjson(R"({
+ BSONObj expectedCmd(fromjson(R"({
findAndModify: "locks",
query: {
$or: [
@@ -571,109 +572,104 @@ namespace {
writeConcern: { w: "majority", j: true, wtimeout: 100 }
})"));
- ASSERT_EQUALS(expectedCmd, request.cmdObj);
- },
- RemoteCommandResponse(responseObj, Milliseconds(0)));
+ ASSERT_EQUALS(expectedCmd, request.cmdObj);
+ }, RemoteCommandResponse(responseObj, Milliseconds(0)));
- OID myID("555f80be366c194b13fb0372");
- OID currentOwner("555f99712c99a78c5b083358");
- Date_t now(dateFromISOString("2015-05-22T19:17:18.098Z").getValue());
- auto resultStatus = catalog.overtakeLock("test", myID, currentOwner,
- "me", "mongos", now, "because");
- ASSERT_OK(resultStatus.getStatus());
+ OID myID("555f80be366c194b13fb0372");
+ OID currentOwner("555f99712c99a78c5b083358");
+ Date_t now(dateFromISOString("2015-05-22T19:17:18.098Z").getValue());
+ auto resultStatus =
+ catalog.overtakeLock("test", myID, currentOwner, "me", "mongos", now, "because");
+ ASSERT_OK(resultStatus.getStatus());
- const auto& lockDoc = resultStatus.getValue();
- ASSERT_TRUE(lockDoc.isValid(nullptr));
- ASSERT_EQUALS("test", lockDoc.getName());
- ASSERT_EQUALS(myID, lockDoc.getLockID());
- ASSERT_EQUALS("me", lockDoc.getWho());
- ASSERT_EQUALS("mongos", lockDoc.getProcess());
- ASSERT_EQUALS("because", lockDoc.getWhy());
- }
+ const auto& lockDoc = resultStatus.getValue();
+ ASSERT_TRUE(lockDoc.isValid(nullptr));
+ ASSERT_EQUALS("test", lockDoc.getName());
+ ASSERT_EQUALS(myID, lockDoc.getLockID());
+ ASSERT_EQUALS("me", lockDoc.getWho());
+ ASSERT_EQUALS("mongos", lockDoc.getProcess());
+ ASSERT_EQUALS("because", lockDoc.getWhy());
+}
- TEST(DistLockCatalogImpl, OvertakeLockTargetError) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, OvertakeLockTargetError) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue({ErrorCodes::InternalError, "can't target"});
+ targeter.setFindHostReturnValue({ErrorCodes::InternalError, "can't target"});
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- auto status = catalog.overtakeLock(
- "", OID(), OID(), "", "", Date_t::now(), "").getStatus();
- ASSERT_NOT_OK(status);
- }
+ auto status = catalog.overtakeLock("", OID(), OID(), "", "", Date_t::now(), "").getStatus();
+ ASSERT_NOT_OK(status);
+}
- TEST(DistLockCatalogImpl, OvertakeLockRunnerError) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, OvertakeLockRunnerError) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- executor.setNextExpectedCommand(noTest, {ErrorCodes::InternalError, "Bad"});
+ executor.setNextExpectedCommand(noTest, {ErrorCodes::InternalError, "Bad"});
- auto status = catalog.overtakeLock(
- "", OID(), OID(), "", "", Date_t::now(), "").getStatus();
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::InternalError, status.code());
- ASSERT_FALSE(status.reason().empty());
- }
+ auto status = catalog.overtakeLock("", OID(), OID(), "", "", Date_t::now(), "").getStatus();
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::InternalError, status.code());
+ ASSERT_FALSE(status.reason().empty());
+}
- TEST(DistLockCatalogImpl, OvertakeLockCommandError) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, OvertakeLockCommandError) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- BSONObj returnObj(fromjson(R"({
+ BSONObj returnObj(fromjson(R"({
ok: 0,
errmsg: "bad",
code: 9
})"));
- executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
+ executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
- auto status = catalog.overtakeLock(
- "", OID(), OID(), "", "", Date_t::now(), "").getStatus();
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::FailedToParse, status.code());
- ASSERT_FALSE(status.reason().empty());
- }
+ auto status = catalog.overtakeLock("", OID(), OID(), "", "", Date_t::now(), "").getStatus();
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::FailedToParse, status.code());
+ ASSERT_FALSE(status.reason().empty());
+}
- TEST(DistLockCatalogImpl, OvertakeLockWriteError) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, OvertakeLockWriteError) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- BSONObj returnObj(fromjson(R"({
+ BSONObj returnObj(fromjson(R"({
ok: 0,
code: 11000,
errmsg: "E11000 duplicate key error"
})"));
- executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
+ executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
- auto status = catalog.overtakeLock(
- "", OID(), OID(), "", "", Date_t::now(), "").getStatus();
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::DuplicateKey, status.code());
- ASSERT_FALSE(status.reason().empty());
- }
+ auto status = catalog.overtakeLock("", OID(), OID(), "", "", Date_t::now(), "").getStatus();
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::DuplicateKey, status.code());
+ ASSERT_FALSE(status.reason().empty());
+}
- TEST(DistLockCatalogImpl, OvertakeLockWriteConcernError) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, OvertakeLockWriteConcernError) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- BSONObj returnObj(fromjson(R"({
+ BSONObj returnObj(fromjson(R"({
ok: 1,
value: null,
writeConcernError: {
@@ -681,24 +677,23 @@ namespace {
errmsg: "waiting for replication timed out"
}
})"));
- executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
+ executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
- auto status = catalog.overtakeLock(
- "", OID(), OID(), "", "", Date_t::now(), "").getStatus();
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::WriteConcernFailed, status.code());
- ASSERT_FALSE(status.reason().empty());
- }
+ auto status = catalog.overtakeLock("", OID(), OID(), "", "", Date_t::now(), "").getStatus();
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::WriteConcernFailed, status.code());
+ ASSERT_FALSE(status.reason().empty());
+}
- TEST(DistLockCatalogImpl, OvertakeLockUnsupportedWriteConcernResponse) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, OvertakeLockUnsupportedWriteConcernResponse) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- BSONObj returnObj(fromjson(R"({
+ BSONObj returnObj(fromjson(R"({
ok: 1,
value: null,
writeConcernError: {
@@ -706,42 +701,42 @@ namespace {
errmsg: "waiting for replication timed out"
}
})"));
- executor.setNextExpectedCommand(noTest,
- RemoteCommandResponse(returnObj, Milliseconds(0)));
+ executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
- auto status = catalog.overtakeLock(
- "", OID(), OID(), "", "", Date_t::now(), "").getStatus();
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::UnsupportedFormat, status.code());
- ASSERT_FALSE(status.reason().empty());
- }
+ auto status = catalog.overtakeLock("", OID(), OID(), "", "", Date_t::now(), "").getStatus();
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::UnsupportedFormat, status.code());
+ ASSERT_FALSE(status.reason().empty());
+}
- TEST(DistLockCatalogImpl, OvertakeLockUnsupportedResponseFormat) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, OvertakeLockUnsupportedResponseFormat) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- executor.setNextExpectedCommand(noTest,
- RemoteCommandResponse(BSON("ok" << 1 << "value" << "NaN"), Milliseconds(0)));
+ executor.setNextExpectedCommand(noTest,
+ RemoteCommandResponse(BSON("ok" << 1 << "value"
+ << "NaN"),
+ Milliseconds(0)));
- auto status = catalog.overtakeLock(
- "", OID(), OID(), "", "", Date_t::now(), "").getStatus();
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::UnsupportedFormat, status.code());
- }
+ auto status = catalog.overtakeLock("", OID(), OID(), "", "", Date_t::now(), "").getStatus();
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::UnsupportedFormat, status.code());
+}
- TEST(DistLockCatalogImpl, BasicUnlock) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, BasicUnlock) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- executor.setNextExpectedCommand([](const RemoteCommandRequest& request) {
+ executor.setNextExpectedCommand(
+ [](const RemoteCommandRequest& request) {
ASSERT_EQUALS(dummyHost, request.target);
ASSERT_EQUALS("config", request.dbname);
@@ -761,21 +756,23 @@ namespace {
ts: ObjectId("555f99712c99a78c5b083358"),
state: 0
}
- })"), Milliseconds(0)));
+ })"),
+ Milliseconds(0)));
- auto status = catalog.unlock(OID("555f99712c99a78c5b083358"));
- ASSERT_OK(status);
- }
+ auto status = catalog.unlock(OID("555f99712c99a78c5b083358"));
+ ASSERT_OK(status);
+}
- TEST(DistLockCatalogImpl, UnlockWithNoNewDoc) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, UnlockWithNoNewDoc) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- executor.setNextExpectedCommand([](const RemoteCommandRequest& request) {
+ executor.setNextExpectedCommand(
+ [](const RemoteCommandRequest& request) {
ASSERT_EQUALS(dummyHost, request.target);
ASSERT_EQUALS("config", request.dbname);
@@ -791,91 +788,92 @@ namespace {
RemoteCommandResponse(fromjson(R"({
ok: 1,
value: null
- })"), Milliseconds(0)));
+ })"),
+ Milliseconds(0)));
- auto status = catalog.unlock(OID("555f99712c99a78c5b083358"));
- ASSERT_OK(status);
- }
+ auto status = catalog.unlock(OID("555f99712c99a78c5b083358"));
+ ASSERT_OK(status);
+}
- TEST(DistLockCatalogImpl, UnlockTargetError) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, UnlockTargetError) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue({ErrorCodes::InternalError, "can't target"});
+ targeter.setFindHostReturnValue({ErrorCodes::InternalError, "can't target"});
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- auto status = catalog.unlock(OID());
- ASSERT_NOT_OK(status);
- }
+ auto status = catalog.unlock(OID());
+ ASSERT_NOT_OK(status);
+}
- TEST(DistLockCatalogImpl, UnlockRunnerError) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, UnlockRunnerError) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- executor.setNextExpectedCommand(noTest, {ErrorCodes::InternalError, "Bad"});
+ executor.setNextExpectedCommand(noTest, {ErrorCodes::InternalError, "Bad"});
- auto status = catalog.unlock(OID());
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::InternalError, status.code());
- ASSERT_FALSE(status.reason().empty());
- }
+ auto status = catalog.unlock(OID());
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::InternalError, status.code());
+ ASSERT_FALSE(status.reason().empty());
+}
- TEST(DistLockCatalogImpl, UnlockCommandError) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, UnlockCommandError) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- BSONObj returnObj(fromjson(R"({
+ BSONObj returnObj(fromjson(R"({
ok: 0,
errmsg: "bad",
code: 9
})"));
- executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
+ executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
- auto status = catalog.unlock(OID());
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::FailedToParse, status.code());
- ASSERT_FALSE(status.reason().empty());
- }
+ auto status = catalog.unlock(OID());
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::FailedToParse, status.code());
+ ASSERT_FALSE(status.reason().empty());
+}
- TEST(DistLockCatalogImpl, UnlockWriteError) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, UnlockWriteError) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- BSONObj returnObj(fromjson(R"({
+ BSONObj returnObj(fromjson(R"({
ok: 0,
code: 11000,
errmsg: "E11000 duplicate key error"
})"));
- executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
+ executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
- auto status = catalog.unlock(OID());
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::DuplicateKey, status.code());
- ASSERT_FALSE(status.reason().empty());
- }
+ auto status = catalog.unlock(OID());
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::DuplicateKey, status.code());
+ ASSERT_FALSE(status.reason().empty());
+}
- TEST(DistLockCatalogImpl, UnlockWriteConcernError) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, UnlockWriteConcernError) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- BSONObj returnObj(fromjson(R"({
+ BSONObj returnObj(fromjson(R"({
ok: 1,
value: null,
writeConcernError: {
@@ -883,23 +881,23 @@ namespace {
errmsg: "waiting for replication timed out"
}
})"));
- executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
+ executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
- auto status = catalog.unlock(OID());
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::WriteConcernFailed, status.code());
- ASSERT_FALSE(status.reason().empty());
- }
+ auto status = catalog.unlock(OID());
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::WriteConcernFailed, status.code());
+ ASSERT_FALSE(status.reason().empty());
+}
- TEST(DistLockCatalogImpl, UnlockUnsupportedWriteConcernResponse) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, UnlockUnsupportedWriteConcernResponse) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- BSONObj returnObj(fromjson(R"({
+ BSONObj returnObj(fromjson(R"({
ok: 1,
value: null,
writeConcernError: {
@@ -907,39 +905,41 @@ namespace {
errmsg: "waiting for replication timed out"
}
})"));
- executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
+ executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
- auto status = catalog.unlock(OID());
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::UnsupportedFormat, status.code());
- ASSERT_FALSE(status.reason().empty());
- }
+ auto status = catalog.unlock(OID());
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::UnsupportedFormat, status.code());
+ ASSERT_FALSE(status.reason().empty());
+}
- TEST(DistLockCatalogImpl, UnlockUnsupportedResponseFormat) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, UnlockUnsupportedResponseFormat) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- executor.setNextExpectedCommand(noTest,
- RemoteCommandResponse(BSON("ok" << 1 << "value" << "NaN"), Milliseconds(0)));
+ executor.setNextExpectedCommand(noTest,
+ RemoteCommandResponse(BSON("ok" << 1 << "value"
+ << "NaN"),
+ Milliseconds(0)));
- auto status = catalog.unlock(OID());
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::UnsupportedFormat, status.code());
- }
+ auto status = catalog.unlock(OID());
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::UnsupportedFormat, status.code());
+}
- TEST(DistLockCatalogImpl, BasicGetServerInfo) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, BasicGetServerInfo) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- BSONObj responseObj(fromjson(R"({
+ BSONObj responseObj(fromjson(R"({
localTime: { $date: "2015-05-26T13:06:27.293Z" },
$gleStats: {
lastOpTime: { $timestamp: { t: 0, i: 0 }},
@@ -948,81 +948,80 @@ namespace {
ok: 1
})"));
- executor.setNextExpectedCommand([](const RemoteCommandRequest& request) {
- ASSERT_EQUALS(dummyHost, request.target);
- ASSERT_EQUALS("admin", request.dbname);
- ASSERT_EQUALS(BSON("serverStatus" << 1), request.cmdObj);
- },
- RemoteCommandResponse(responseObj, Milliseconds(0)));
+ executor.setNextExpectedCommand([](const RemoteCommandRequest& request) {
+ ASSERT_EQUALS(dummyHost, request.target);
+ ASSERT_EQUALS("admin", request.dbname);
+ ASSERT_EQUALS(BSON("serverStatus" << 1), request.cmdObj);
+ }, RemoteCommandResponse(responseObj, Milliseconds(0)));
- Date_t localTime(dateFromISOString("2015-05-26T13:06:27.293Z").getValue());
- OID electionID("555fa85d4d8640862a0fc79b");
- auto resultStatus = catalog.getServerInfo();
- ASSERT_OK(resultStatus.getStatus());
+ Date_t localTime(dateFromISOString("2015-05-26T13:06:27.293Z").getValue());
+ OID electionID("555fa85d4d8640862a0fc79b");
+ auto resultStatus = catalog.getServerInfo();
+ ASSERT_OK(resultStatus.getStatus());
- const auto& serverInfo = resultStatus.getValue();
- ASSERT_EQUALS(electionID, serverInfo.electionId);
- ASSERT_EQUALS(localTime, serverInfo.serverTime);
- }
+ const auto& serverInfo = resultStatus.getValue();
+ ASSERT_EQUALS(electionID, serverInfo.electionId);
+ ASSERT_EQUALS(localTime, serverInfo.serverTime);
+}
- TEST(DistLockCatalogImpl, GetServerTargetError) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, GetServerTargetError) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue({ErrorCodes::InternalError, "can't target"});
+ targeter.setFindHostReturnValue({ErrorCodes::InternalError, "can't target"});
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- auto status = catalog.getServerInfo().getStatus();
- ASSERT_NOT_OK(status);
- }
+ auto status = catalog.getServerInfo().getStatus();
+ ASSERT_NOT_OK(status);
+}
- TEST(DistLockCatalogImpl, GetServerRunnerError) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, GetServerRunnerError) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- executor.setNextExpectedCommand(noTest, {ErrorCodes::InternalError, "Bad"});
+ executor.setNextExpectedCommand(noTest, {ErrorCodes::InternalError, "Bad"});
- auto status = catalog.getServerInfo().getStatus();
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::InternalError, status.code());
- ASSERT_FALSE(status.reason().empty());
- }
+ auto status = catalog.getServerInfo().getStatus();
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::InternalError, status.code());
+ ASSERT_FALSE(status.reason().empty());
+}
- TEST(DistLockCatalogImpl, GetServerCommandError) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, GetServerCommandError) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- BSONObj returnObj(fromjson(R"({
+ BSONObj returnObj(fromjson(R"({
ok: 0,
errmsg: "bad",
code: 9
})"));
- executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
+ executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
- auto status = catalog.getServerInfo().getStatus();
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::FailedToParse, status.code());
- ASSERT_FALSE(status.reason().empty());
- }
+ auto status = catalog.getServerInfo().getStatus();
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::FailedToParse, status.code());
+ ASSERT_FALSE(status.reason().empty());
+}
- TEST(DistLockCatalogImpl, GetServerBadElectionId) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, GetServerBadElectionId) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- BSONObj returnObj(fromjson(R"({
+ BSONObj returnObj(fromjson(R"({
localTime: { $date: "2015-05-26T13:06:27.293Z" },
$gleStats: {
lastOpTime: { $timestamp: { t: 0, i: 0 }},
@@ -1030,23 +1029,23 @@ namespace {
},
ok: 1
})"));
- executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
+ executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
- auto status = catalog.getServerInfo().getStatus();
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::UnsupportedFormat, status.code());
- ASSERT_FALSE(status.reason().empty());
- }
+ auto status = catalog.getServerInfo().getStatus();
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::UnsupportedFormat, status.code());
+ ASSERT_FALSE(status.reason().empty());
+}
- TEST(DistLockCatalogImpl, GetServerBadLocalTime) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, GetServerBadLocalTime) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- BSONObj returnObj(fromjson(R"({
+ BSONObj returnObj(fromjson(R"({
localTime: "2015-05-26T13:06:27.293Z",
$gleStats: {
lastOpTime: { $timestamp: { t: 0, i: 0 }},
@@ -1054,43 +1053,43 @@ namespace {
},
ok: 1
})"));
- executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
+ executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
- auto status = catalog.getServerInfo().getStatus();
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::UnsupportedFormat, status.code());
- ASSERT_FALSE(status.reason().empty());
- }
+ auto status = catalog.getServerInfo().getStatus();
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::UnsupportedFormat, status.code());
+ ASSERT_FALSE(status.reason().empty());
+}
- TEST(DistLockCatalogImpl, GetServerNoGLEStats) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, GetServerNoGLEStats) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- BSONObj returnObj(fromjson(R"({
+ BSONObj returnObj(fromjson(R"({
localTime: { $date: "2015-05-26T13:06:27.293Z" },
ok: 1
})"));
- executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
+ executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
- auto status = catalog.getServerInfo().getStatus();
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::UnsupportedFormat, status.code());
- ASSERT_FALSE(status.reason().empty());
- }
+ auto status = catalog.getServerInfo().getStatus();
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::UnsupportedFormat, status.code());
+ ASSERT_FALSE(status.reason().empty());
+}
- TEST(DistLockCatalogImpl, GetServerNoElectionId) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, GetServerNoElectionId) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- BSONObj returnObj(fromjson(R"({
+ BSONObj returnObj(fromjson(R"({
localTime: { $date: "2015-05-26T13:06:27.293Z" },
$gleStats: {
lastOpTime: { $timestamp: { t: 0, i: 0 }},
@@ -1098,23 +1097,24 @@ namespace {
},
ok: 1
})"));
- executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
+ executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
- auto status = catalog.getServerInfo().getStatus();
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::UnsupportedFormat, status.code());
- ASSERT_FALSE(status.reason().empty());
- }
+ auto status = catalog.getServerInfo().getStatus();
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::UnsupportedFormat, status.code());
+ ASSERT_FALSE(status.reason().empty());
+}
- TEST(DistLockCatalogImpl, BasicStopPing) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, BasicStopPing) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- executor.setNextExpectedCommand([](const RemoteCommandRequest& request) {
+ executor.setNextExpectedCommand(
+ [](const RemoteCommandRequest& request) {
ASSERT_EQUALS(dummyHost, request.target);
ASSERT_EQUALS("config", request.dbname);
@@ -1133,91 +1133,92 @@ namespace {
_id: "test",
ping: { $date: "2014-03-11T09:17:18.098Z" }
}
- })"), Milliseconds(0)));
+ })"),
+ Milliseconds(0)));
- auto status = catalog.stopPing("test");
- ASSERT_OK(status);
- }
+ auto status = catalog.stopPing("test");
+ ASSERT_OK(status);
+}
- TEST(DistLockCatalogImpl, StopPingTargetError) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, StopPingTargetError) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue({ErrorCodes::InternalError, "can't target"});
+ targeter.setFindHostReturnValue({ErrorCodes::InternalError, "can't target"});
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- auto status = catalog.stopPing("");
- ASSERT_NOT_OK(status);
- }
+ auto status = catalog.stopPing("");
+ ASSERT_NOT_OK(status);
+}
- TEST(DistLockCatalogImpl, StopPingRunnerError) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, StopPingRunnerError) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- executor.setNextExpectedCommand(noTest, {ErrorCodes::InternalError, "Bad"});
+ executor.setNextExpectedCommand(noTest, {ErrorCodes::InternalError, "Bad"});
- auto status = catalog.stopPing("");
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::InternalError, status.code());
- ASSERT_FALSE(status.reason().empty());
- }
+ auto status = catalog.stopPing("");
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::InternalError, status.code());
+ ASSERT_FALSE(status.reason().empty());
+}
- TEST(DistLockCatalogImpl, StopPingCommandError) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, StopPingCommandError) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- BSONObj returnObj(fromjson(R"({
+ BSONObj returnObj(fromjson(R"({
ok: 0,
errmsg: "bad",
code: 9
})"));
- executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
+ executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
- auto status = catalog.stopPing("");
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::FailedToParse, status.code());
- ASSERT_FALSE(status.reason().empty());
- }
+ auto status = catalog.stopPing("");
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::FailedToParse, status.code());
+ ASSERT_FALSE(status.reason().empty());
+}
- TEST(DistLockCatalogImpl, StopPingWriteError) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, StopPingWriteError) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- BSONObj returnObj(fromjson(R"({
+ BSONObj returnObj(fromjson(R"({
ok: 0,
code: 13,
errmsg: "Unauthorized"
})"));
- executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
+ executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
- auto status = catalog.stopPing("");
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::Unauthorized, status.code());
- ASSERT_FALSE(status.reason().empty());
- }
+ auto status = catalog.stopPing("");
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::Unauthorized, status.code());
+ ASSERT_FALSE(status.reason().empty());
+}
- TEST(DistLockCatalogImpl, StopPingWriteConcernError) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, StopPingWriteConcernError) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- BSONObj returnObj(fromjson(R"({
+ BSONObj returnObj(fromjson(R"({
ok: 1,
value: null,
writeConcernError: {
@@ -1225,23 +1226,23 @@ namespace {
errmsg: "waiting for replication timed out"
}
})"));
- executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
+ executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
- auto status = catalog.stopPing("");
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::WriteConcernFailed, status.code());
- ASSERT_FALSE(status.reason().empty());
- }
+ auto status = catalog.stopPing("");
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::WriteConcernFailed, status.code());
+ ASSERT_FALSE(status.reason().empty());
+}
- TEST(DistLockCatalogImpl, StopPingUnsupportedWriteConcernResponse) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, StopPingUnsupportedWriteConcernResponse) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- BSONObj returnObj(fromjson(R"({
+ BSONObj returnObj(fromjson(R"({
ok: 1,
value: null,
writeConcernError: {
@@ -1249,29 +1250,31 @@ namespace {
errmsg: "waiting for replication timed out"
}
})"));
- executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
+ executor.setNextExpectedCommand(noTest, RemoteCommandResponse(returnObj, Milliseconds(0)));
- auto status = catalog.stopPing("");
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::UnsupportedFormat, status.code());
- ASSERT_FALSE(status.reason().empty());
- }
+ auto status = catalog.stopPing("");
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::UnsupportedFormat, status.code());
+ ASSERT_FALSE(status.reason().empty());
+}
- TEST(DistLockCatalogImpl, StopPingUnsupportedResponseFormat) {
- RemoteCommandTargeterMock targeter;
- RemoteCommandRunnerMock executor;
+TEST(DistLockCatalogImpl, StopPingUnsupportedResponseFormat) {
+ RemoteCommandTargeterMock targeter;
+ RemoteCommandRunnerMock executor;
- targeter.setFindHostReturnValue(dummyHost);
+ targeter.setFindHostReturnValue(dummyHost);
- DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
+ DistLockCatalogImpl catalog(&targeter, &executor, kWTimeout);
- executor.setNextExpectedCommand(noTest,
- RemoteCommandResponse(BSON("ok" << 1 << "value" << "NaN"), Milliseconds(0)));
+ executor.setNextExpectedCommand(noTest,
+ RemoteCommandResponse(BSON("ok" << 1 << "value"
+ << "NaN"),
+ Milliseconds(0)));
- auto status = catalog.stopPing("");
- ASSERT_NOT_OK(status);
- ASSERT_EQUALS(ErrorCodes::UnsupportedFormat, status.code());
- }
+ auto status = catalog.stopPing("");
+ ASSERT_NOT_OK(status);
+ ASSERT_EQUALS(ErrorCodes::UnsupportedFormat, status.code());
+}
-} // unnamed namespace
-} // namespace mongo
+} // unnamed namespace
+} // namespace mongo