summaryrefslogtreecommitdiff
path: root/src/mongo/db/catalog/rename_collection_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/catalog/rename_collection_test.cpp')
-rw-r--r--src/mongo/db/catalog/rename_collection_test.cpp109
1 files changed, 66 insertions, 43 deletions
diff --git a/src/mongo/db/catalog/rename_collection_test.cpp b/src/mongo/db/catalog/rename_collection_test.cpp
index b8d37818602..8605bb21e37 100644
--- a/src/mongo/db/catalog/rename_collection_test.cpp
+++ b/src/mongo/db/catalog/rename_collection_test.cpp
@@ -316,9 +316,12 @@ protected:
ServiceContext::UniqueOperationContext _opCtx;
repl::ReplicationCoordinatorMock* _replCoord = nullptr;
OpObserverMock* _opObserver = nullptr;
- NamespaceString _sourceNss{NamespaceString(boost::none, "test.foo")};
- NamespaceString _targetNss{NamespaceString(boost::none, "test.bar")};
- NamespaceString _targetNssDifferentDb{NamespaceString(boost::none, "test2.bar")};
+ NamespaceString _sourceNss{
+ NamespaceString::createNamespaceString_forTest(boost::none, "test.foo")};
+ NamespaceString _targetNss{
+ NamespaceString::createNamespaceString_forTest(boost::none, "test.bar")};
+ NamespaceString _targetNssDifferentDb{
+ NamespaceString::createNamespaceString_forTest(boost::none, "test2.bar")};
};
// static
@@ -543,7 +546,8 @@ TEST_F(RenameCollectionTest, RenameCollectionReturnsNotWritablePrimaryIfNotPrima
TEST_F(RenameCollectionTest, TargetCollectionNameLong) {
_createCollection(_opCtx.get(), _sourceNss);
const std::string targetCollectionName(255, 'a');
- NamespaceString longTargetNss(_sourceNss.db(), targetCollectionName);
+ NamespaceString longTargetNss =
+ NamespaceString::createNamespaceString_forTest(_sourceNss.db(), targetCollectionName);
ASSERT_OK(renameCollection(_opCtx.get(), _sourceNss, longTargetNss, {}));
}
@@ -562,7 +566,8 @@ TEST_F(RenameCollectionTest, LongIndexNameAllowedForTemporaryCollectionForRename
// Using XXXXX to check namespace length. Each 'X' will be replaced by a random character in
// renameCollection().
- const NamespaceString tempNss(_targetNssDifferentDb.getSisterNS("tmpXXXXX.renameCollection"));
+ const NamespaceString tempNss = NamespaceString::createNamespaceString_forTest(
+ _targetNssDifferentDb.getSisterNS("tmpXXXXX.renameCollection"));
_createCollection(_opCtx.get(), _sourceNss);
std::size_t longIndexLength = 500;
@@ -603,7 +608,8 @@ TEST_F(
auto options = _makeCollectionOptionsWithUuid();
_createCollection(_opCtx.get(), dropPendingNss, options);
- NamespaceString ignoredSourceNss(_sourceNss.dbName(), "ignored");
+ NamespaceString ignoredSourceNss =
+ NamespaceString::createNamespaceString_forTest(_sourceNss.dbName(), "ignored");
auto cmd = BSON("renameCollection" << ignoredSourceNss.ns() << "to" << _targetNss.ns());
ASSERT_EQUALS(ErrorCodes::NamespaceNotFound,
renameCollectionForApplyOps(_opCtx.get(), options.uuid, boost::none, cmd, {}));
@@ -631,7 +637,7 @@ TEST_F(RenameCollectionTest, RenameCollectionToItselfByUUIDForApplyOps) {
}
TEST_F(RenameCollectionTest, RenameCollectionByUUIDRatherThanNsForApplyOps) {
- auto realRenameFromNss = NamespaceString("test.bar2");
+ auto realRenameFromNss = NamespaceString::createNamespaceString_forTest("test.bar2");
auto uuid = _createCollectionWithUUID(_opCtx.get(), realRenameFromNss);
auto cmd = BSON("renameCollection" << _sourceNss.ns() << "to" << _targetNss.ns() << "dropTarget"
<< true);
@@ -640,9 +646,9 @@ TEST_F(RenameCollectionTest, RenameCollectionByUUIDRatherThanNsForApplyOps) {
}
TEST_F(RenameCollectionTest, RenameCollectionForApplyOpsDropTargetByUUIDTargetDoesNotExist) {
- const auto& collA = NamespaceString("test.A");
- const auto& collB = NamespaceString("test.B");
- const auto& collC = NamespaceString("test.C");
+ const auto& collA = NamespaceString::createNamespaceString_forTest("test.A");
+ const auto& collB = NamespaceString::createNamespaceString_forTest("test.B");
+ const auto& collC = NamespaceString::createNamespaceString_forTest("test.C");
auto collAUUID = _createCollectionWithUUID(_opCtx.get(), collA);
auto collCUUID = _createCollectionWithUUID(_opCtx.get(), collC);
// Rename A to B, drop C, where B is not an existing collection
@@ -661,9 +667,9 @@ TEST_F(RenameCollectionTest, RenameCollectionForApplyOpsDropTargetByUUIDTargetDo
}
TEST_F(RenameCollectionTest, RenameCollectionForApplyOpsDropTargetByUUIDTargetExists) {
- const auto& collA = NamespaceString("test.A");
- const auto& collB = NamespaceString("test.B");
- const auto& collC = NamespaceString("test.C");
+ const auto& collA = NamespaceString::createNamespaceString_forTest("test.A");
+ const auto& collB = NamespaceString::createNamespaceString_forTest("test.B");
+ const auto& collC = NamespaceString::createNamespaceString_forTest("test.C");
auto collAUUID = _createCollectionWithUUID(_opCtx.get(), collA);
auto collBUUID = _createCollectionWithUUID(_opCtx.get(), collB);
auto collCUUID = _createCollectionWithUUID(_opCtx.get(), collC);
@@ -688,9 +694,9 @@ TEST_F(RenameCollectionTest, RenameCollectionForApplyOpsDropTargetByUUIDTargetEx
TEST_F(RenameCollectionTest,
RenameCollectionForApplyOpsDropTargetByUUIDTargetExistsButTemporarily) {
- const auto& collA = NamespaceString("test.A");
- const auto& collB = NamespaceString("test.B");
- const auto& collC = NamespaceString("test.C");
+ const auto& collA = NamespaceString::createNamespaceString_forTest("test.A");
+ const auto& collB = NamespaceString::createNamespaceString_forTest("test.B");
+ const auto& collC = NamespaceString::createNamespaceString_forTest("test.C");
CollectionOptions collectionOptions = _makeCollectionOptionsWithUuid();
collectionOptions.temp = true;
@@ -720,8 +726,8 @@ TEST_F(RenameCollectionTest,
TEST_F(RenameCollectionTest,
RenameCollectionForApplyOpsDropTargetByUUIDTargetExistsButRealDropTargetDoesNotExist) {
- const auto& collA = NamespaceString("test.A");
- const auto& collB = NamespaceString("test.B");
+ const auto& collA = NamespaceString::createNamespaceString_forTest("test.A");
+ const auto& collB = NamespaceString::createNamespaceString_forTest("test.B");
auto collAUUID = _createCollectionWithUUID(_opCtx.get(), collA);
auto collBUUID = _createCollectionWithUUID(_opCtx.get(), collB);
auto collCUUID = UUID::gen();
@@ -806,7 +812,7 @@ TEST_F(RenameCollectionTest, RenameCollectionForApplyOpsSourceAndTargetDoNotExis
TEST_F(RenameCollectionTest, RenameCollectionForApplyOpsDropTargetEvenIfSourceDoesNotExist) {
_createCollectionWithUUID(_opCtx.get(), _targetNss);
- auto missingSourceNss = NamespaceString("test.bar2");
+ auto missingSourceNss = NamespaceString::createNamespaceString_forTest("test.bar2");
auto uuid = UUID::gen();
auto cmd =
BSON("renameCollection" << missingSourceNss.ns() << "to" << _targetNss.ns() << "dropTarget"
@@ -816,8 +822,8 @@ TEST_F(RenameCollectionTest, RenameCollectionForApplyOpsDropTargetEvenIfSourceDo
}
TEST_F(RenameCollectionTest, RenameCollectionForApplyOpsDropTargetByUUIDEvenIfSourceDoesNotExist) {
- auto missingSourceNss = NamespaceString("test.bar2");
- auto dropTargetNss = NamespaceString("test.bar3");
+ auto missingSourceNss = NamespaceString::createNamespaceString_forTest("test.bar2");
+ auto dropTargetNss = NamespaceString::createNamespaceString_forTest("test.bar3");
_createCollectionWithUUID(_opCtx.get(), _targetNss);
auto dropTargetUUID = _createCollectionWithUUID(_opCtx.get(), dropTargetNss);
auto uuid = UUID::gen();
@@ -1055,8 +1061,9 @@ TEST_F(RenameCollectionTest, RenameCollectionAcrossDatabasesWithLocks) {
}
TEST_F(RenameCollectionTest, FailRenameCollectionFromReplicatedToUnreplicatedDB) {
- NamespaceString sourceNss("foo.isReplicated");
- NamespaceString targetNss("local.isUnreplicated");
+ NamespaceString sourceNss = NamespaceString::createNamespaceString_forTest("foo.isReplicated");
+ NamespaceString targetNss =
+ NamespaceString::createNamespaceString_forTest("local.isUnreplicated");
_createCollection(_opCtx.get(), sourceNss);
@@ -1065,8 +1072,9 @@ TEST_F(RenameCollectionTest, FailRenameCollectionFromReplicatedToUnreplicatedDB)
}
TEST_F(RenameCollectionTest, FailRenameCollectionFromUnreplicatedToReplicatedDB) {
- NamespaceString sourceNss("foo.system.profile");
- NamespaceString targetNss("foo.bar");
+ NamespaceString sourceNss =
+ NamespaceString::createNamespaceString_forTest("foo.system.profile");
+ NamespaceString targetNss = NamespaceString::createNamespaceString_forTest("foo.bar");
_createCollection(_opCtx.get(), sourceNss);
@@ -1079,7 +1087,8 @@ TEST_F(RenameCollectionTest,
_createCollection(_opCtx.get(), _sourceNss);
// Create a namespace that is not in the form "database.collection".
- NamespaceString invalidTargetNss("invalidNamespace");
+ NamespaceString invalidTargetNss =
+ NamespaceString::createNamespaceString_forTest("invalidNamespace");
auto cmd = BSON("renameCollection" << _sourceNss.ns() << "to" << invalidTargetNss.ns());
@@ -1088,8 +1097,9 @@ TEST_F(RenameCollectionTest,
}
TEST_F(RenameCollectionTest, FailRenameCollectionFromSystemJavascript) {
- NamespaceString sourceNss("foo", NamespaceString::kSystemDotJavascriptCollectionName);
- NamespaceString targetNss("foo.bar");
+ NamespaceString sourceNss = NamespaceString::createNamespaceString_forTest(
+ "foo", NamespaceString::kSystemDotJavascriptCollectionName);
+ NamespaceString targetNss = NamespaceString::createNamespaceString_forTest("foo.bar");
_createCollection(_opCtx.get(), sourceNss);
@@ -1107,8 +1117,9 @@ TEST_F(RenameCollectionTest, FailRenameCollectionFromSystemJavascript) {
}
TEST_F(RenameCollectionTest, FailRenameCollectionToSystemJavascript) {
- NamespaceString sourceNss("foo.bar");
- NamespaceString targetNss("foo", NamespaceString::kSystemDotJavascriptCollectionName);
+ NamespaceString sourceNss = NamespaceString::createNamespaceString_forTest("foo.bar");
+ NamespaceString targetNss = NamespaceString::createNamespaceString_forTest(
+ "foo", NamespaceString::kSystemDotJavascriptCollectionName);
_createCollection(_opCtx.get(), sourceNss);
@@ -1137,7 +1148,8 @@ protected:
std::string _sourceNs{"test.foo"};
std::string _otherNs{"test.bar"};
- NamespaceString _sourceNssTid{NamespaceString(_tenantId, _sourceNs)};
+ NamespaceString _sourceNssTid =
+ (NamespaceString::createNamespaceString_forTest(_tenantId, _sourceNs));
};
void RenameCollectionTestMultitenancy::setUp() {
@@ -1156,7 +1168,8 @@ TEST_F(RenameCollectionTestMultitenancy, RenameCollectionForApplyOps) {
RAIIServerParameterControllerForTest multitenancyController("multitenancySupport", true);
RAIIServerParameterControllerForTest featureFlagController("featureFlagRequireTenantID", true);
- const NamespaceString targetNssTid(_tenantId, _otherNs);
+ const NamespaceString targetNssTid =
+ NamespaceString::createNamespaceString_forTest(_tenantId, _otherNs);
ASSERT_NOT_EQUALS(_sourceNssTid, targetNssTid);
// A tid field supersedes tenantIds maintained in source or target, ie. we don't take into
@@ -1178,7 +1191,8 @@ TEST_F(RenameCollectionTestMultitenancy, RenameCollectionForApplyOpsCommonRandom
RAIIServerParameterControllerForTest multitenancyController("multitenancySupport", true);
RAIIServerParameterControllerForTest featureFlagController("featureFlagRequireTenantID", true);
- const NamespaceString targetNssTid(_otherTenantId, _sourceNs);
+ const NamespaceString targetNssTid =
+ NamespaceString::createNamespaceString_forTest(_otherTenantId, _sourceNs);
ASSERT_NOT_EQUALS(_sourceNssTid, targetNssTid);
// This test only has a single tenantId that belongs to neither source nor target.
@@ -1197,15 +1211,17 @@ TEST_F(RenameCollectionTestMultitenancy, RenameCollectionForApplyOpsCommonTid) {
RAIIServerParameterControllerForTest multitenancyController("multitenancySupport", true);
RAIIServerParameterControllerForTest featureFlagController("featureFlagRequireTenantID", true);
- const NamespaceString targetNssTid(_otherTenantId, _otherNs);
+ const NamespaceString targetNssTid =
+ NamespaceString::createNamespaceString_forTest(_otherTenantId, _otherNs);
ASSERT_NOT_EQUALS(_sourceNssTid, targetNssTid);
// A tid field supersedes tenantIds maintained in source or target. See above.
auto cmd =
BSON("renameCollection" << _sourceNssTid.toString() << "to" << targetNssTid.toString());
ASSERT_OK(renameCollectionForApplyOps(_opCtx.get(), boost::none, _tenantId, cmd, {}));
- ASSERT_TRUE(
- _collectionExists(_opCtx.get(), NamespaceString(_tenantId, targetNssTid.toString())));
+ ASSERT_TRUE(_collectionExists(
+ _opCtx.get(),
+ NamespaceString::createNamespaceString_forTest(_tenantId, targetNssTid.toString())));
ASSERT_FALSE(_collectionExists(_opCtx.get(), _sourceNssTid));
}
@@ -1213,8 +1229,10 @@ TEST_F(RenameCollectionTestMultitenancy, RenameCollectionForApplyOpsSourceExists
RAIIServerParameterControllerForTest multitenancyController("multitenancySupport", true);
RAIIServerParameterControllerForTest featureFlagController("featureFlagRequireTenantID", true);
- const NamespaceString otherSourceNssTid(_otherTenantId, _sourceNs);
- const NamespaceString targetNssTid(_otherTenantId, _otherNs);
+ const NamespaceString otherSourceNssTid =
+ NamespaceString::createNamespaceString_forTest(_otherTenantId, _sourceNs);
+ const NamespaceString targetNssTid =
+ NamespaceString::createNamespaceString_forTest(_otherTenantId, _otherNs);
ASSERT_NOT_EQUALS(otherSourceNssTid, targetNssTid);
// A tid field supersedes tenantIds maintained in source or target. See above.
@@ -1232,8 +1250,10 @@ TEST_F(RenameCollectionTestMultitenancy,
RAIIServerParameterControllerForTest multitenancyController("multitenancySupport", true);
RAIIServerParameterControllerForTest featureFlagController("featureFlagRequireTenantID", false);
- const NamespaceString otherSourceNssTid(_otherTenantId, _sourceNs);
- const NamespaceString targetNssTid(_otherTenantId, _otherNs);
+ const NamespaceString otherSourceNssTid =
+ NamespaceString::createNamespaceString_forTest(_otherTenantId, _sourceNs);
+ const NamespaceString targetNssTid =
+ NamespaceString::createNamespaceString_forTest(_otherTenantId, _otherNs);
ASSERT_NOT_EQUALS(otherSourceNssTid, targetNssTid);
// A tid field supersedes tenantIds maintained in source or target. See above.
@@ -1250,7 +1270,8 @@ TEST_F(RenameCollectionTestMultitenancy, RenameCollectionForApplyOpsRequireTenan
RAIIServerParameterControllerForTest multitenancyController("multitenancySupport", true);
RAIIServerParameterControllerForTest featureFlagController("featureFlagRequireTenantID", false);
- const NamespaceString targetNssTid(_tenantId, _otherNs);
+ const NamespaceString targetNssTid =
+ NamespaceString::createNamespaceString_forTest(_tenantId, _otherNs);
ASSERT_NOT_EQUALS(_sourceNssTid, targetNssTid);
auto cmd = BSON("renameCollection" << _sourceNssTid.toStringWithTenantId() << "to"
@@ -1283,7 +1304,8 @@ TEST_F(RenameCollectionTestMultitenancy, RenameCollectionForApplyOpsAcrossTenant
RAIIServerParameterControllerForTest multitenancyController("multitenancySupport", true);
RAIIServerParameterControllerForTest featureFlagController("featureFlagRequireTenantID", false);
- const NamespaceString targetNssTid(_otherTenantId, _sourceNs);
+ const NamespaceString targetNssTid =
+ NamespaceString::createNamespaceString_forTest(_otherTenantId, _sourceNs);
ASSERT_NOT_EQUALS(_sourceNssTid, targetNssTid);
// This test is valid during the transition period, before featureFlagRequireTenantID is
@@ -1297,7 +1319,8 @@ TEST_F(RenameCollectionTestMultitenancy, RenameCollectionForApplyOpsAcrossTenant
TEST_F(RenameCollectionTestMultitenancy, RenameCollectionAcrossTenantIds) {
RAIIServerParameterControllerForTest multitenancyController("multitenancySupport", true);
- const NamespaceString targetNssTid(_otherTenantId, _otherNs);
+ const NamespaceString targetNssTid =
+ NamespaceString::createNamespaceString_forTest(_otherTenantId, _otherNs);
ASSERT_NOT_EQUALS(_sourceNssTid, targetNssTid);
// Renaming collections across tenantIds is not allowed