summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Schwerin <schwerin@mongodb.com>2015-07-16 12:19:33 -0400
committerAndy Schwerin <schwerin@mongodb.com>2015-07-21 14:21:52 -0400
commit923fcee186e7f1f4a908c9a8ff62fb30c23d5dc5 (patch)
treecb82a42e0f00c73c6430e94b7e1beef41def4efe
parent88e9fd1a09afb37e61937e585b334685d75c757a (diff)
downloadmongo-923fcee186e7f1f4a908c9a8ff62fb30c23d5dc5.tar.gz
SERVER-19492 Use ThreadPoolTaskExecutor instead of ReplicationExecutor in unit tests.
The fetcher test is excluded at present, because it appears to depend on some implementation behavior of ReplicationExecutor that remains to be diagnosed.
-rw-r--r--src/mongo/db/repl/replication_executor_test.cpp2
-rw-r--r--src/mongo/db/repl/replication_executor_test_fixture.cpp2
-rw-r--r--src/mongo/db/repl/replication_executor_test_fixture.h2
-rw-r--r--src/mongo/executor/SConscript22
-rw-r--r--src/mongo/executor/network_test_env.cpp2
-rw-r--r--src/mongo/executor/network_test_env.h8
-rw-r--r--src/mongo/executor/task_executor_test_common.cpp5
-rw-r--r--src/mongo/executor/task_executor_test_common.h8
-rw-r--r--src/mongo/executor/task_executor_test_fixture.h2
-rw-r--r--src/mongo/executor/thread_pool_task_executor_test.cpp19
-rw-r--r--src/mongo/executor/thread_pool_task_executor_test_fixture.cpp52
-rw-r--r--src/mongo/executor/thread_pool_task_executor_test_fixture.h56
-rw-r--r--src/mongo/s/catalog/SConscript5
-rw-r--r--src/mongo/s/catalog/dist_lock_catalog_impl_test.cpp5
-rw-r--r--src/mongo/s/catalog/replset/SConscript1
-rw-r--r--src/mongo/s/catalog/replset/catalog_manager_replica_set_test_fixture.cpp7
-rw-r--r--src/mongo/s/catalog/replset/catalog_manager_replica_set_test_fixture.h3
17 files changed, 155 insertions, 46 deletions
diff --git a/src/mongo/db/repl/replication_executor_test.cpp b/src/mongo/db/repl/replication_executor_test.cpp
index 527d0eb310b..fb6639b788c 100644
--- a/src/mongo/db/repl/replication_executor_test.cpp
+++ b/src/mongo/db/repl/replication_executor_test.cpp
@@ -58,7 +58,7 @@ const int64_t prngSeed = 1;
MONGO_INITIALIZER(ReplExecutorCommonTests)(InitializerContext*) {
mongo::executor::addTestsForExecutor(
"ReplicationExecutorCommon",
- [](std::unique_ptr<executor::NetworkInterface>* net) {
+ [](std::unique_ptr<executor::NetworkInterfaceMock>* net) {
return stdx::make_unique<ReplicationExecutor>(
net->release(), new StorageInterfaceMock(), prngSeed);
});
diff --git a/src/mongo/db/repl/replication_executor_test_fixture.cpp b/src/mongo/db/repl/replication_executor_test_fixture.cpp
index 8d2172eb291..2ee87f372de 100644
--- a/src/mongo/db/repl/replication_executor_test_fixture.cpp
+++ b/src/mongo/db/repl/replication_executor_test_fixture.cpp
@@ -52,7 +52,7 @@ void ReplicationExecutorTest::postExecutorThreadLaunch() {
}
std::unique_ptr<executor::TaskExecutor> ReplicationExecutorTest::makeTaskExecutor(
- std::unique_ptr<executor::NetworkInterface> net) {
+ std::unique_ptr<executor::NetworkInterfaceMock> net) {
_storage = new StorageInterfaceMock();
return stdx::make_unique<ReplicationExecutor>(net.release(), _storage, prngSeed);
}
diff --git a/src/mongo/db/repl/replication_executor_test_fixture.h b/src/mongo/db/repl/replication_executor_test_fixture.h
index f7bd59a8672..73e5ae2c504 100644
--- a/src/mongo/db/repl/replication_executor_test_fixture.h
+++ b/src/mongo/db/repl/replication_executor_test_fixture.h
@@ -60,7 +60,7 @@ protected:
private:
std::unique_ptr<executor::TaskExecutor> makeTaskExecutor(
- std::unique_ptr<executor::NetworkInterface> net) override;
+ std::unique_ptr<executor::NetworkInterfaceMock> net) override;
StorageInterfaceMock* _storage{nullptr};
diff --git a/src/mongo/executor/SConscript b/src/mongo/executor/SConscript
index 2339743ffa1..24147c3c578 100644
--- a/src/mongo/executor/SConscript
+++ b/src/mongo/executor/SConscript
@@ -11,6 +11,7 @@ env.Library(target='task_executor_interface',
'task_executor.cpp',
],
LIBDEPS=[
+ '$BUILD_DIR/mongo/base/base',
'$BUILD_DIR/mongo/rpc/metadata',
'$BUILD_DIR/mongo/util/net/hostandport',
])
@@ -27,7 +28,7 @@ env.Library(target='network_interface_impl', # TODO: rename to thread_pool_netwo
'$BUILD_DIR/mongo/client/remote_command_runner_impl',
'$BUILD_DIR/mongo/util/concurrency/thread_pool',
'network_interface',
- # TODO: add dependency on the task executor *interface* once available.
+ 'task_executor_interface',
])
env.Library('network_interface_mock',
@@ -47,8 +48,8 @@ env.Library(target='network_test_env',
source=['network_test_env.cpp',],
LIBDEPS=[
'network_interface_mock',
+ 'task_executor_interface',
'$BUILD_DIR/mongo/db/coredb',
- '$BUILD_DIR/mongo/db/repl/replication_executor',
])
env.Library(
@@ -98,7 +99,19 @@ env.Library(
'thread_pool_task_executor.cpp',
],
LIBDEPS=[
- '$BUILD_DIR/mongo/util/concurrency/thread_pool'
+ '$BUILD_DIR/mongo/util/concurrency/thread_pool',
+ 'task_executor_interface',
+ ]
+)
+
+env.Library(
+ target='thread_pool_task_executor_test_fixture',
+ source=[
+ 'thread_pool_task_executor_test_fixture.cpp',
+ ],
+ LIBDEPS=[
+ 'thread_pool_task_executor',
+ 'task_executor_test_fixture',
]
)
@@ -108,7 +121,6 @@ env.CppUnitTest(
'thread_pool_task_executor_test.cpp',
],
LIBDEPS=[
- 'thread_pool_task_executor',
- 'task_executor_test_fixture',
+ 'thread_pool_task_executor_test_fixture',
]
)
diff --git a/src/mongo/executor/network_test_env.cpp b/src/mongo/executor/network_test_env.cpp
index 18ed04ebd00..c65d1adcf2a 100644
--- a/src/mongo/executor/network_test_env.cpp
+++ b/src/mongo/executor/network_test_env.cpp
@@ -38,7 +38,7 @@ namespace mongo {
namespace executor {
-NetworkTestEnv::NetworkTestEnv(repl::ReplicationExecutor* executor, NetworkInterfaceMock* network)
+NetworkTestEnv::NetworkTestEnv(TaskExecutor* executor, NetworkInterfaceMock* network)
: _executor(executor), _mockNetwork(network) {}
void NetworkTestEnv::onCommand(OnCommandFunction func) {
diff --git a/src/mongo/executor/network_test_env.h b/src/mongo/executor/network_test_env.h
index bfec66d570f..b68b15a5a7f 100644
--- a/src/mongo/executor/network_test_env.h
+++ b/src/mongo/executor/network_test_env.h
@@ -31,11 +31,11 @@
#include <type_traits>
#include <vector>
-#include "mongo/db/repl/replication_executor.h"
#include "mongo/executor/network_interface_mock.h"
-#include "mongo/stdx/thread.h"
+#include "mongo/executor/task_executor.h"
#include "mongo/stdx/functional.h"
#include "mongo/stdx/future.h"
+#include "mongo/stdx/thread.h"
#include "mongo/unittest/unittest.h"
namespace mongo {
@@ -138,7 +138,7 @@ public:
/**
* Create a new environment based on the given network.
*/
- NetworkTestEnv(repl::ReplicationExecutor* executor, NetworkInterfaceMock* network);
+ NetworkTestEnv(TaskExecutor* executor, NetworkInterfaceMock* network);
/**
* Blocking methods, which receive one message from the network and respond using the
@@ -150,7 +150,7 @@ public:
private:
// Task executor used for running asynchronous operations.
- repl::ReplicationExecutor* _executor;
+ TaskExecutor* _executor;
// Mocked out network under the task executor.
NetworkInterfaceMock* _mockNetwork;
diff --git a/src/mongo/executor/task_executor_test_common.cpp b/src/mongo/executor/task_executor_test_common.cpp
index 19eddcee5e9..d57f2e15434 100644
--- a/src/mongo/executor/task_executor_test_common.cpp
+++ b/src/mongo/executor/task_executor_test_common.cpp
@@ -51,7 +51,7 @@ namespace executor {
namespace {
using ExecutorFactory =
- stdx::function<std::unique_ptr<TaskExecutor>(std::unique_ptr<NetworkInterface>*)>;
+ stdx::function<std::unique_ptr<TaskExecutor>(std::unique_ptr<NetworkInterfaceMock>*)>;
class CommonTaskExecutorTestFixture : public TaskExecutorTest {
public:
@@ -59,7 +59,8 @@ public:
: _makeExecutor(std::move(makeExecutor)) {}
private:
- std::unique_ptr<TaskExecutor> makeTaskExecutor(std::unique_ptr<NetworkInterface> net) override {
+ std::unique_ptr<TaskExecutor> makeTaskExecutor(
+ std::unique_ptr<NetworkInterfaceMock> net) override {
return _makeExecutor(&net);
}
diff --git a/src/mongo/executor/task_executor_test_common.h b/src/mongo/executor/task_executor_test_common.h
index 8d933cfcde5..b9fd7e7235c 100644
--- a/src/mongo/executor/task_executor_test_common.h
+++ b/src/mongo/executor/task_executor_test_common.h
@@ -36,7 +36,7 @@
namespace mongo {
namespace executor {
-class NetworkInterface;
+class NetworkInterfaceMock;
class TaskExecutor;
/**
@@ -49,9 +49,9 @@ class TaskExecutor;
* presumably after the release of MSVC2015, the signature can be changed to take the unique_ptr
* by value.
*/
-void addTestsForExecutor(
- const std::string& suiteName,
- stdx::function<std::unique_ptr<TaskExecutor>(std::unique_ptr<NetworkInterface>*)> makeExecutor);
+void addTestsForExecutor(const std::string& suiteName,
+ stdx::function<std::unique_ptr<TaskExecutor>(
+ std::unique_ptr<NetworkInterfaceMock>*)> makeExecutor);
} // namespace executor
} // namespace mongo
diff --git a/src/mongo/executor/task_executor_test_fixture.h b/src/mongo/executor/task_executor_test_fixture.h
index 2e3b6f135c7..2077bdb027c 100644
--- a/src/mongo/executor/task_executor_test_fixture.h
+++ b/src/mongo/executor/task_executor_test_fixture.h
@@ -77,7 +77,7 @@ protected:
private:
virtual std::unique_ptr<TaskExecutor> makeTaskExecutor(
- std::unique_ptr<NetworkInterface> net) = 0;
+ std::unique_ptr<NetworkInterfaceMock> net) = 0;
virtual void postExecutorThreadLaunch();
diff --git a/src/mongo/executor/thread_pool_task_executor_test.cpp b/src/mongo/executor/thread_pool_task_executor_test.cpp
index 63e8e142f3d..af1f4fb53b5 100644
--- a/src/mongo/executor/thread_pool_task_executor_test.cpp
+++ b/src/mongo/executor/thread_pool_task_executor_test.cpp
@@ -35,37 +35,24 @@
#include "mongo/executor/network_interface_mock.h"
#include "mongo/executor/task_executor_test_common.h"
#include "mongo/executor/task_executor_test_fixture.h"
+#include "mongo/executor/thread_pool_mock.h"
#include "mongo/executor/thread_pool_task_executor.h"
+#include "mongo/executor/thread_pool_task_executor_test_fixture.h"
#include "mongo/stdx/memory.h"
#include "mongo/unittest/unittest.h"
-#include "mongo/executor/thread_pool_mock.h"
namespace mongo {
namespace executor {
namespace {
-std::unique_ptr<ThreadPoolTaskExecutor> makeThreadPoolTestExecutor(
- std::unique_ptr<NetworkInterface> net) {
- auto netPtr = checked_cast<NetworkInterfaceMock*>(net.get());
- return stdx::make_unique<ThreadPoolTaskExecutor>(stdx::make_unique<ThreadPoolMock>(netPtr, 1),
- std::move(net));
-}
-
MONGO_INITIALIZER(ThreadPoolExecutorCommonTests)(InitializerContext*) {
addTestsForExecutor("ThreadPoolExecutorCommon",
- [](std::unique_ptr<NetworkInterface>* net) {
+ [](std::unique_ptr<NetworkInterfaceMock>* net) {
return makeThreadPoolTestExecutor(std::move(*net));
});
return Status::OK();
}
-class ThreadPoolExecutorTest : public TaskExecutorTest {
-private:
- std::unique_ptr<TaskExecutor> makeTaskExecutor(std::unique_ptr<NetworkInterface> net) override {
- return makeThreadPoolTestExecutor(std::move(net));
- }
-};
-
void setStatus(const TaskExecutor::CallbackArgs& cbData, Status* outStatus) {
*outStatus = cbData.status;
}
diff --git a/src/mongo/executor/thread_pool_task_executor_test_fixture.cpp b/src/mongo/executor/thread_pool_task_executor_test_fixture.cpp
new file mode 100644
index 00000000000..618ef921323
--- /dev/null
+++ b/src/mongo/executor/thread_pool_task_executor_test_fixture.cpp
@@ -0,0 +1,52 @@
+/**
+ * Copyright (C) 2015 MongoDB Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * As a special exception, the copyright holders give permission to link the
+ * code of portions of this program with the OpenSSL library under certain
+ * conditions as described in each individual source file and distribute
+ * linked combinations including the program with the OpenSSL library. You
+ * must comply with the GNU Affero General Public License in all respects for
+ * all of the code used other than as permitted herein. If you modify file(s)
+ * with this exception, you may extend this exception to your version of the
+ * file(s), but you are not obligated to do so. If you do not wish to do so,
+ * delete this exception statement from your version. If you delete this
+ * exception statement from all source files in the program, then also delete
+ * it in the license file.
+ */
+
+#include "mongo/platform/basic.h"
+
+#include "mongo/executor/thread_pool_task_executor_test_fixture.h"
+
+#include "mongo/executor/thread_pool_mock.h"
+#include "mongo/stdx/memory.h"
+
+namespace mongo {
+namespace executor {
+
+std::unique_ptr<ThreadPoolTaskExecutor> makeThreadPoolTestExecutor(
+ std::unique_ptr<NetworkInterfaceMock> net) {
+ auto netPtr = net.get();
+ return stdx::make_unique<ThreadPoolTaskExecutor>(stdx::make_unique<ThreadPoolMock>(netPtr, 1),
+ std::move(net));
+}
+
+std::unique_ptr<TaskExecutor> ThreadPoolExecutorTest::makeTaskExecutor(
+ std::unique_ptr<NetworkInterfaceMock> net) {
+ return makeThreadPoolTestExecutor(std::move(net));
+}
+
+} // namespace executor
+} // namespace mongo
diff --git a/src/mongo/executor/thread_pool_task_executor_test_fixture.h b/src/mongo/executor/thread_pool_task_executor_test_fixture.h
new file mode 100644
index 00000000000..04a3089bbab
--- /dev/null
+++ b/src/mongo/executor/thread_pool_task_executor_test_fixture.h
@@ -0,0 +1,56 @@
+/**
+ * Copyright (C) 2015 MongoDB Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * As a special exception, the copyright holders give permission to link the
+ * code of portions of this program with the OpenSSL library under certain
+ * conditions as described in each individual source file and distribute
+ * linked combinations including the program with the OpenSSL library. You
+ * must comply with the GNU Affero General Public License in all respects for
+ * all of the code used other than as permitted herein. If you modify file(s)
+ * with this exception, you may extend this exception to your version of the
+ * file(s), but you are not obligated to do so. If you do not wish to do so,
+ * delete this exception statement from your version. If you delete this
+ * exception statement from all source files in the program, then also delete
+ * it in the license file.
+ */
+
+#pragma once
+
+#include <memory>
+
+#include "mongo/executor/network_interface_mock.h"
+#include "mongo/executor/thread_pool_task_executor.h"
+#include "mongo/executor/task_executor_test_fixture.h"
+
+namespace mongo {
+namespace executor {
+
+/**
+ * Makes a new ThreadPoolTaskExecutor for use in unit tests.
+ */
+std::unique_ptr<ThreadPoolTaskExecutor> makeThreadPoolTestExecutor(
+ std::unique_ptr<NetworkInterfaceMock> net);
+
+/**
+ * Useful fixture class for tests that use a ThreadPoolTaskExecutor.
+ */
+class ThreadPoolExecutorTest : public TaskExecutorTest {
+private:
+ std::unique_ptr<TaskExecutor> makeTaskExecutor(
+ std::unique_ptr<NetworkInterfaceMock> net) override;
+};
+
+} // namespace executor
+} // namespace mongo
diff --git a/src/mongo/s/catalog/SConscript b/src/mongo/s/catalog/SConscript
index 170f22d1727..ab3d850e2ad 100644
--- a/src/mongo/s/catalog/SConscript
+++ b/src/mongo/s/catalog/SConscript
@@ -146,13 +146,14 @@ env.CppUnitTest(
'dist_lock_catalog_impl_test.cpp',
],
LIBDEPS=[
- 'catalog_manager_mock',
- 'dist_lock_catalog_impl',
'$BUILD_DIR/mongo/client/remote_command_targeter_mock',
'$BUILD_DIR/mongo/db/auth/authorization_manager_mock_init',
'$BUILD_DIR/mongo/executor/network_test_env',
+ '$BUILD_DIR/mongo/executor/thread_pool_task_executor_test_fixture',
'$BUILD_DIR/mongo/s/coreshard',
'$BUILD_DIR/mongo/s/mongoscore',
+ 'catalog_manager_mock',
+ 'dist_lock_catalog_impl',
]
)
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 7fbe52eea03..456ecaa70ba 100644
--- a/src/mongo/s/catalog/dist_lock_catalog_impl_test.cpp
+++ b/src/mongo/s/catalog/dist_lock_catalog_impl_test.cpp
@@ -38,9 +38,9 @@
#include "mongo/db/commands.h"
#include "mongo/db/jsobj.h"
#include "mongo/db/query/find_and_modify_request.h"
-#include "mongo/db/repl/replication_executor.h"
#include "mongo/executor/network_interface_mock.h"
#include "mongo/executor/network_test_env.h"
+#include "mongo/executor/thread_pool_task_executor_test_fixture.h"
#include "mongo/s/catalog/catalog_manager_mock.h"
#include "mongo/s/catalog/dist_lock_catalog_impl.h"
#include "mongo/s/catalog/type_lockpings.h"
@@ -105,8 +105,7 @@ private:
void setUp() override {
auto networkUniquePtr = stdx::make_unique<executor::NetworkInterfaceMock>();
executor::NetworkInterfaceMock* network = networkUniquePtr.get();
- auto executor =
- stdx::make_unique<repl::ReplicationExecutor>(networkUniquePtr.release(), nullptr, 0);
+ auto executor = executor::makeThreadPoolTestExecutor(std::move(networkUniquePtr));
_networkTestEnv = stdx::make_unique<NetworkTestEnv>(executor.get(), network);
diff --git a/src/mongo/s/catalog/replset/SConscript b/src/mongo/s/catalog/replset/SConscript
index fe1d0e307c9..2e7d7d72f4a 100644
--- a/src/mongo/s/catalog/replset/SConscript
+++ b/src/mongo/s/catalog/replset/SConscript
@@ -59,6 +59,7 @@ env.CppUnitTest(
'$BUILD_DIR/mongo/client/remote_command_targeter_mock',
'$BUILD_DIR/mongo/db/auth/authorization_manager_mock_init',
'$BUILD_DIR/mongo/executor/network_test_env',
+ '$BUILD_DIR/mongo/executor/thread_pool_task_executor_test_fixture',
'$BUILD_DIR/mongo/s/catalog/dist_lock_manager_mock',
'$BUILD_DIR/mongo/s/coreshard',
'$BUILD_DIR/mongo/s/mongoscore',
diff --git a/src/mongo/s/catalog/replset/catalog_manager_replica_set_test_fixture.cpp b/src/mongo/s/catalog/replset/catalog_manager_replica_set_test_fixture.cpp
index 48778885397..a8ae5bc04fc 100644
--- a/src/mongo/s/catalog/replset/catalog_manager_replica_set_test_fixture.cpp
+++ b/src/mongo/s/catalog/replset/catalog_manager_replica_set_test_fixture.cpp
@@ -40,9 +40,9 @@
#include "mongo/db/commands.h"
#include "mongo/db/namespace_string.h"
#include "mongo/db/query/lite_parsed_query.h"
-#include "mongo/db/repl/replication_executor.h"
#include "mongo/db/service_context_noop.h"
#include "mongo/executor/network_interface_mock.h"
+#include "mongo/executor/thread_pool_task_executor_test_fixture.h"
#include "mongo/s/catalog/dist_lock_manager_mock.h"
#include "mongo/s/catalog/replset/catalog_manager_replica_set.h"
#include "mongo/s/catalog/type_changelog.h"
@@ -83,8 +83,7 @@ void CatalogManagerReplSetTestFixture::setUp() {
auto network(stdx::make_unique<executor::NetworkInterfaceMock>());
_mockNetwork = network.get();
- std::unique_ptr<repl::ReplicationExecutor> executor(
- stdx::make_unique<repl::ReplicationExecutor>(network.release(), nullptr, 0));
+ auto executor = makeThreadPoolTestExecutor(std::move(network));
_networkTestEnv = stdx::make_unique<NetworkTestEnv>(executor.get(), _mockNetwork);
_executor = executor.get();
@@ -216,7 +215,7 @@ void CatalogManagerReplSetTestFixture::expectGetShards(const std::vector<ShardTy
});
}
-void CatalogManagerReplSetTestFixture::expectInserts(const NamespaceString nss,
+void CatalogManagerReplSetTestFixture::expectInserts(const NamespaceString& nss,
const std::vector<BSONObj>& expected) {
onCommand([&nss, &expected](const RemoteCommandRequest& request) {
ASSERT_EQUALS(nss.db(), request.dbname);
diff --git a/src/mongo/s/catalog/replset/catalog_manager_replica_set_test_fixture.h b/src/mongo/s/catalog/replset/catalog_manager_replica_set_test_fixture.h
index 574944460f1..62aaa1a9602 100644
--- a/src/mongo/s/catalog/replset/catalog_manager_replica_set_test_fixture.h
+++ b/src/mongo/s/catalog/replset/catalog_manager_replica_set_test_fixture.h
@@ -40,6 +40,7 @@ namespace mongo {
class BSONObj;
class CatalogManagerReplicaSet;
class DistLockManagerMock;
+class NamespaceString;
class RemoteCommandTargeterFactoryMock;
class RemoteCommandTargeterMock;
class ShardRegistry;
@@ -107,7 +108,7 @@ protected:
* Wait for a single insert request and ensures that the items being inserted exactly match the
* expected items. Responds with a success status.
*/
- void expectInserts(const NamespaceString nss, const std::vector<BSONObj>& expected);
+ void expectInserts(const NamespaceString& nss, const std::vector<BSONObj>& expected);
/**
* Waits for a count command and returns a response reporting the given number of documents