diff options
author | Kevin Pulo <kevin.pulo@mongodb.com> | 2020-06-02 22:46:25 +1000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2020-06-03 00:09:46 +0000 |
commit | e8cb6d99bbf736b5a47797aeb9242feff7ec6bd4 (patch) | |
tree | f45660f73f999dfa8ef6dc16c3b0190aa7cb6660 /src | |
parent | 80f81b001abbc7aa585b26ef1461225ecad90b51 (diff) | |
download | mongo-e8cb6d99bbf736b5a47797aeb9242feff7ec6bd4.tar.gz |
SERVER-48534 Make NetworkTestEnv correctly handle fire-and-forget commands
Diffstat (limited to 'src')
-rw-r--r-- | src/mongo/executor/network_test_env.cpp | 9 | ||||
-rw-r--r-- | src/mongo/executor/network_test_env.h | 4 |
2 files changed, 9 insertions, 4 deletions
diff --git a/src/mongo/executor/network_test_env.cpp b/src/mongo/executor/network_test_env.cpp index 7f63816d251..a52c3ddf9b3 100644 --- a/src/mongo/executor/network_test_env.cpp +++ b/src/mongo/executor/network_test_env.cpp @@ -56,7 +56,10 @@ void NetworkTestEnv::onCommands(std::vector<OnCommandFunction> funcs) { auto resultStatus = func(request); - if (resultStatus.isOK()) { + if (request.fireAndForgetMode == + executor::RemoteCommandRequestBase::FireAndForgetMode::kOn) { + _mockNetwork->blackHole(noi); + } else if (resultStatus.isOK()) { BSONObjBuilder result(std::move(resultStatus.getValue())); CommandHelpers::appendCommandStatusNoThrow(result, resultStatus.getStatus()); const RemoteCommandResponse response(result.obj(), Milliseconds(1)); @@ -79,7 +82,9 @@ void NetworkTestEnv::onCommandWithMetadata(OnCommandWithMetadataFunction func) { auto cmdResponseStatus = func(request); - if (cmdResponseStatus.isOK()) { + if (request.fireAndForgetMode == executor::RemoteCommandRequestBase::FireAndForgetMode::kOn) { + _mockNetwork->blackHole(noi); + } else if (cmdResponseStatus.isOK()) { BSONObjBuilder result(std::move(cmdResponseStatus.data)); CommandHelpers::appendCommandStatusNoThrow(result, cmdResponseStatus.status); const RemoteCommandResponse response(result.obj(), Milliseconds(1)); diff --git a/src/mongo/executor/network_test_env.h b/src/mongo/executor/network_test_env.h index df8d612a5fe..ef35b8b613b 100644 --- a/src/mongo/executor/network_test_env.h +++ b/src/mongo/executor/network_test_env.h @@ -81,7 +81,7 @@ namespace executor { class NetworkTestEnv { public: // Common timeout for tests to use for any work scheduled through launchAsync to complete. - static constexpr Minutes kDefaulLaunchAsyncFutureTimeout{5}; + static constexpr Minutes kDefaultLaunchAsyncFutureTimeout{5}; /** * Wraps a std::future but will cancel any pending network operations in its destructor if @@ -133,7 +133,7 @@ public: } T default_timed_get() { - return timed_get(kDefaulLaunchAsyncFutureTimeout); + return timed_get(kDefaultLaunchAsyncFutureTimeout); } private: |