summaryrefslogtreecommitdiff
path: root/src/mongo/executor/network_interface_asio_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/executor/network_interface_asio_test.cpp')
-rw-r--r--src/mongo/executor/network_interface_asio_test.cpp169
1 files changed, 93 insertions, 76 deletions
diff --git a/src/mongo/executor/network_interface_asio_test.cpp b/src/mongo/executor/network_interface_asio_test.cpp
index 7462070bad9..a6193dbccde 100644
--- a/src/mongo/executor/network_interface_asio_test.cpp
+++ b/src/mongo/executor/network_interface_asio_test.cpp
@@ -166,8 +166,9 @@ TEST_F(NetworkInterfaceASIOTest, CancelOperation) {
// simulate isMaster reply.
stream->simulateServer(rpc::Protocol::kOpQuery,
- [](RemoteCommandRequest request)
- -> RemoteCommandResponse { return simulateIsMaster(request); });
+ [](RemoteCommandRequest request) -> RemoteCommandResponse {
+ return simulateIsMaster(request);
+ });
{
// Cancel operation while blocked in the write for determinism. By calling cancel here we
@@ -196,8 +197,9 @@ TEST_F(NetworkInterfaceASIOTest, ImmediateCancel) {
auto stream = streamFactory().blockUntilStreamExists(testHost);
ConnectEvent{stream}.skip();
stream->simulateServer(rpc::Protocol::kOpQuery,
- [](RemoteCommandRequest request)
- -> RemoteCommandResponse { return simulateIsMaster(request); });
+ [](RemoteCommandRequest request) -> RemoteCommandResponse {
+ return simulateIsMaster(request);
+ });
auto& result = deferred.get();
ASSERT(result == ErrorCodes::CallbackCanceled);
@@ -214,8 +216,9 @@ TEST_F(NetworkInterfaceASIOTest, LateCancel) {
auto stream = streamFactory().blockUntilStreamExists(testHost);
ConnectEvent{stream}.skip();
stream->simulateServer(rpc::Protocol::kOpQuery,
- [](RemoteCommandRequest request)
- -> RemoteCommandResponse { return simulateIsMaster(request); });
+ [](RemoteCommandRequest request) -> RemoteCommandResponse {
+ return simulateIsMaster(request);
+ });
// Simulate user command
stream->simulateServer(rpc::Protocol::kOpCommandV1,
@@ -244,8 +247,9 @@ TEST_F(NetworkInterfaceASIOTest, CancelWithNetworkError) {
// simulate isMaster reply.
stream->simulateServer(rpc::Protocol::kOpQuery,
- [](RemoteCommandRequest request)
- -> RemoteCommandResponse { return simulateIsMaster(request); });
+ [](RemoteCommandRequest request) -> RemoteCommandResponse {
+ return simulateIsMaster(request);
+ });
{
WriteEvent{stream}.skip();
@@ -272,8 +276,9 @@ TEST_F(NetworkInterfaceASIOTest, CancelWithTimeout) {
ConnectEvent{stream}.skip();
stream->simulateServer(rpc::Protocol::kOpQuery,
- [](RemoteCommandRequest request)
- -> RemoteCommandResponse { return simulateIsMaster(request); });
+ [](RemoteCommandRequest request) -> RemoteCommandResponse {
+ return simulateIsMaster(request);
+ });
{
WriteEvent write{stream};
@@ -299,8 +304,9 @@ TEST_F(NetworkInterfaceASIOTest, TimeoutWithNetworkError) {
auto stream = streamFactory().blockUntilStreamExists(testHost);
ConnectEvent{stream}.skip();
stream->simulateServer(rpc::Protocol::kOpQuery,
- [](RemoteCommandRequest request)
- -> RemoteCommandResponse { return simulateIsMaster(request); });
+ [](RemoteCommandRequest request) -> RemoteCommandResponse {
+ return simulateIsMaster(request);
+ });
{
WriteEvent{stream}.skip();
@@ -327,8 +333,9 @@ TEST_F(NetworkInterfaceASIOTest, CancelWithTimeoutAndNetworkError) {
auto stream = streamFactory().blockUntilStreamExists(testHost);
ConnectEvent{stream}.skip();
stream->simulateServer(rpc::Protocol::kOpQuery,
- [](RemoteCommandRequest request)
- -> RemoteCommandResponse { return simulateIsMaster(request); });
+ [](RemoteCommandRequest request) -> RemoteCommandResponse {
+ return simulateIsMaster(request);
+ });
{
WriteEvent{stream}.skip();
@@ -358,8 +365,9 @@ TEST_F(NetworkInterfaceASIOTest, AsyncOpTimeout) {
// Simulate isMaster reply.
stream->simulateServer(rpc::Protocol::kOpQuery,
- [](RemoteCommandRequest request)
- -> RemoteCommandResponse { return simulateIsMaster(request); });
+ [](RemoteCommandRequest request) -> RemoteCommandResponse {
+ return simulateIsMaster(request);
+ });
{
// Wait for the operation to block on write so we know it's been added.
@@ -393,27 +401,28 @@ TEST_F(NetworkInterfaceASIOTest, StartCommand) {
// simulate isMaster reply.
stream->simulateServer(rpc::Protocol::kOpQuery,
- [](RemoteCommandRequest request)
- -> RemoteCommandResponse { return simulateIsMaster(request); });
+ [](RemoteCommandRequest request) -> RemoteCommandResponse {
+ return simulateIsMaster(request);
+ });
auto expectedMetadata = BSON("meep"
<< "beep");
auto expectedCommandReply = BSON("boop"
<< "bop"
- << "ok" << 1.0);
+ << "ok"
+ << 1.0);
// simulate user command
- stream->simulateServer(rpc::Protocol::kOpCommandV1,
- [&](RemoteCommandRequest request) -> RemoteCommandResponse {
- ASSERT_EQ(std::string{request.cmdObj.firstElementFieldName()},
- "foo");
- ASSERT_EQ(request.dbname, "testDB");
+ stream->simulateServer(
+ rpc::Protocol::kOpCommandV1, [&](RemoteCommandRequest request) -> RemoteCommandResponse {
+ ASSERT_EQ(std::string{request.cmdObj.firstElementFieldName()}, "foo");
+ ASSERT_EQ(request.dbname, "testDB");
- RemoteCommandResponse response;
- response.data = expectedCommandReply;
- response.metadata = expectedMetadata;
- return response;
- });
+ RemoteCommandResponse response;
+ response.data = expectedCommandReply;
+ response.metadata = expectedMetadata;
+ return response;
+ });
auto& res = deferred.get();
@@ -450,8 +459,9 @@ public:
auto stream = streamFactory().blockUntilStreamExists(testHost);
ConnectEvent{stream}.skip();
stream->simulateServer(rpc::Protocol::kOpQuery,
- [](RemoteCommandRequest request)
- -> RemoteCommandResponse { return simulateIsMaster(request); });
+ [](RemoteCommandRequest request) -> RemoteCommandResponse {
+ return simulateIsMaster(request);
+ });
uint32_t messageId = 0;
@@ -499,11 +509,9 @@ public:
};
TEST_F(MalformedMessageTest, messageHeaderWrongResponseTo) {
- runMessageTest(ErrorCodes::ProtocolError,
- false,
- [](MsgData::View message) {
- message.setResponseToMsgId(message.getResponseToMsgId() + 1);
- });
+ runMessageTest(ErrorCodes::ProtocolError, false, [](MsgData::View message) {
+ message.setResponseToMsgId(message.getResponseToMsgId() + 1);
+ });
}
TEST_F(MalformedMessageTest, messageHeaderlenZero) {
@@ -512,15 +520,15 @@ TEST_F(MalformedMessageTest, messageHeaderlenZero) {
}
TEST_F(MalformedMessageTest, MessageHeaderLenTooSmall) {
- runMessageTest(ErrorCodes::InvalidLength,
- false,
- [](MsgData::View message) { message.setLen(6); }); // min is 16
+ runMessageTest(ErrorCodes::InvalidLength, false, [](MsgData::View message) {
+ message.setLen(6);
+ }); // min is 16
}
TEST_F(MalformedMessageTest, MessageHeaderLenTooLarge) {
- runMessageTest(ErrorCodes::InvalidLength,
- false,
- [](MsgData::View message) { message.setLen(48000001); }); // max is 48000000
+ runMessageTest(ErrorCodes::InvalidLength, false, [](MsgData::View message) {
+ message.setLen(48000001);
+ }); // max is 48000000
}
TEST_F(MalformedMessageTest, MessageHeaderLenNegative) {
@@ -529,27 +537,27 @@ TEST_F(MalformedMessageTest, MessageHeaderLenNegative) {
}
TEST_F(MalformedMessageTest, MessageLenSmallerThanActual) {
- runMessageTest(ErrorCodes::InvalidBSON,
- true,
- [](MsgData::View message) { message.setLen(message.getLen() - 10); });
+ runMessageTest(ErrorCodes::InvalidBSON, true, [](MsgData::View message) {
+ message.setLen(message.getLen() - 10);
+ });
}
TEST_F(MalformedMessageTest, FailedToReadAllBytesForMessage) {
- runMessageTest(ErrorCodes::InvalidLength,
- true,
- [](MsgData::View message) { message.setLen(message.getLen() + 100); });
+ runMessageTest(ErrorCodes::InvalidLength, true, [](MsgData::View message) {
+ message.setLen(message.getLen() + 100);
+ });
}
TEST_F(MalformedMessageTest, UnsupportedOpcode) {
- runMessageTest(ErrorCodes::UnsupportedFormat,
- true,
- [](MsgData::View message) { message.setOperation(2222); });
+ runMessageTest(ErrorCodes::UnsupportedFormat, true, [](MsgData::View message) {
+ message.setOperation(2222);
+ });
}
TEST_F(MalformedMessageTest, MismatchedOpcode) {
- runMessageTest(ErrorCodes::UnsupportedFormat,
- true,
- [](MsgData::View message) { message.setOperation(2006); });
+ runMessageTest(ErrorCodes::UnsupportedFormat, true, [](MsgData::View message) {
+ message.setOperation(2006);
+ });
}
class NetworkInterfaceASIOConnectionHookTest : public NetworkInterfaceASIOTest {
@@ -605,14 +613,14 @@ TEST_F(NetworkInterfaceASIOConnectionHookTest, ValidateHostInvalid) {
// simulate isMaster reply.
stream->simulateServer(
- rpc::Protocol::kOpQuery,
- [](RemoteCommandRequest request) -> RemoteCommandResponse {
+ rpc::Protocol::kOpQuery, [](RemoteCommandRequest request) -> RemoteCommandResponse {
RemoteCommandResponse response;
response.data =
- BSON("minWireVersion"
- << mongo::WireSpec::instance().minWireVersionIncoming << "maxWireVersion"
- << mongo::WireSpec::instance().maxWireVersionIncoming << "TESTKEY"
- << "TESTVALUE");
+ BSON("minWireVersion" << mongo::WireSpec::instance().minWireVersionIncoming
+ << "maxWireVersion"
+ << mongo::WireSpec::instance().maxWireVersionIncoming
+ << "TESTKEY"
+ << "TESTVALUE");
return response;
});
@@ -637,8 +645,9 @@ TEST_F(NetworkInterfaceASIOConnectionHookTest, MakeRequestReturnsError) {
Status makeRequestError{ErrorCodes::DBPathInUse, "bloooh"};
start(makeTestHook(
- [&](const HostAndPort& remoteHost, const RemoteCommandResponse& isMasterReply)
- -> Status { return Status::OK(); },
+ [&](const HostAndPort& remoteHost, const RemoteCommandResponse& isMasterReply) -> Status {
+ return Status::OK();
+ },
[&](const HostAndPort& remoteHost) -> StatusWith<boost::optional<RemoteCommandRequest>> {
makeRequestCalled = true;
return makeRequestError;
@@ -659,8 +668,9 @@ TEST_F(NetworkInterfaceASIOConnectionHookTest, MakeRequestReturnsError) {
// simulate isMaster reply.
stream->simulateServer(rpc::Protocol::kOpQuery,
- [](RemoteCommandRequest request)
- -> RemoteCommandResponse { return simulateIsMaster(request); });
+ [](RemoteCommandRequest request) -> RemoteCommandResponse {
+ return simulateIsMaster(request);
+ });
// We should stop here.
auto& res = deferred.get();
@@ -676,8 +686,9 @@ TEST_F(NetworkInterfaceASIOConnectionHookTest, MakeRequestReturnsNone) {
bool handleReplyCalled = false;
start(makeTestHook(
- [&](const HostAndPort& remoteHost, const RemoteCommandResponse& isMasterReply)
- -> Status { return Status::OK(); },
+ [&](const HostAndPort& remoteHost, const RemoteCommandResponse& isMasterReply) -> Status {
+ return Status::OK();
+ },
[&](const HostAndPort& remoteHost) -> StatusWith<boost::optional<RemoteCommandRequest>> {
makeRequestCalled = true;
return {boost::none};
@@ -692,7 +703,8 @@ TEST_F(NetworkInterfaceASIOConnectionHookTest, MakeRequestReturnsNone) {
auto commandReply = BSON("foo"
<< "boo"
- << "ok" << 1.0);
+ << "ok"
+ << 1.0);
auto metadata = BSON("aaa"
<< "bbb");
@@ -704,8 +716,9 @@ TEST_F(NetworkInterfaceASIOConnectionHookTest, MakeRequestReturnsNone) {
// simulate isMaster reply.
stream->simulateServer(rpc::Protocol::kOpQuery,
- [](RemoteCommandRequest request)
- -> RemoteCommandResponse { return simulateIsMaster(request); });
+ [](RemoteCommandRequest request) -> RemoteCommandResponse {
+ return simulateIsMaster(request);
+ });
// Simulate user command.
stream->simulateServer(rpc::Protocol::kOpCommandV1,
@@ -739,14 +752,16 @@ TEST_F(NetworkInterfaceASIOConnectionHookTest, HandleReplyReturnsError) {
BSONObj hookCommandReply = BSON("blah"
<< "blah"
- << "ok" << 1.0);
+ << "ok"
+ << 1.0);
BSONObj hookReplyMetadata = BSON("1111" << 2222);
Status handleReplyError{ErrorCodes::AuthSchemaIncompatible, "daowdjkpowkdjpow"};
start(makeTestHook(
- [&](const HostAndPort& remoteHost, const RemoteCommandResponse& isMasterReply)
- -> Status { return Status::OK(); },
+ [&](const HostAndPort& remoteHost, const RemoteCommandResponse& isMasterReply) -> Status {
+ return Status::OK();
+ },
[&](const HostAndPort& remoteHost) -> StatusWith<boost::optional<RemoteCommandRequest>> {
makeRequestCalled = true;
return {boost::make_optional<RemoteCommandRequest>(
@@ -769,8 +784,9 @@ TEST_F(NetworkInterfaceASIOConnectionHookTest, HandleReplyReturnsError) {
// simulate isMaster reply.
stream->simulateServer(rpc::Protocol::kOpQuery,
- [](RemoteCommandRequest request)
- -> RemoteCommandResponse { return simulateIsMaster(request); });
+ [](RemoteCommandRequest request) -> RemoteCommandResponse {
+ return simulateIsMaster(request);
+ });
// Simulate hook reply
stream->simulateServer(rpc::Protocol::kOpCommandV1,
@@ -873,8 +889,9 @@ TEST_F(NetworkInterfaceASIOMetadataTest, Metadata) {
// simulate isMaster reply.
stream->simulateServer(rpc::Protocol::kOpQuery,
- [](RemoteCommandRequest request)
- -> RemoteCommandResponse { return simulateIsMaster(request); });
+ [](RemoteCommandRequest request) -> RemoteCommandResponse {
+ return simulateIsMaster(request);
+ });
// Simulate hook reply
stream->simulateServer(rpc::Protocol::kOpCommandV1,