summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKevin Pulo <kevin.pulo@mongodb.com>2020-06-02 22:46:25 +1000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-06-03 00:09:46 +0000
commite8cb6d99bbf736b5a47797aeb9242feff7ec6bd4 (patch)
treef45660f73f999dfa8ef6dc16c3b0190aa7cb6660 /src
parent80f81b001abbc7aa585b26ef1461225ecad90b51 (diff)
downloadmongo-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.cpp9
-rw-r--r--src/mongo/executor/network_test_env.h4
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: