summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJosef Ahmad <josef.ahmad@mongodb.com>2022-01-18 13:20:00 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-01-18 13:46:47 +0000
commitfd275f66b712e0af181b53575efbe8a87f214a5e (patch)
treed41c09eab1a4f252a30221e32540f7b06fed08e0 /src
parenta19f0b1c2575b8423c65f56e81d1e077274d0065 (diff)
downloadmongo-fd275f66b712e0af181b53575efbe8a87f214a5e.tar.gz
SERVER-61278 Guard capped clustered collections behind enableTestCommands
Diffstat (limited to 'src')
-rw-r--r--src/mongo/db/commands/create_command.cpp7
-rw-r--r--src/mongo/db/storage/ephemeral_for_test/ephemeral_for_test_record_store_test.cpp6
-rw-r--r--src/mongo/db/storage/record_store_test_datafor.cpp4
-rw-r--r--src/mongo/db/storage/record_store_test_datasize.cpp4
-rw-r--r--src/mongo/db/storage/record_store_test_deleterecord.cpp4
-rw-r--r--src/mongo/db/storage/record_store_test_harness.cpp37
-rw-r--r--src/mongo/db/storage/record_store_test_harness.h13
-rw-r--r--src/mongo/db/storage/record_store_test_insertrecord.cpp4
-rw-r--r--src/mongo/db/storage/record_store_test_oplog.cpp2
-rw-r--r--src/mongo/db/storage/record_store_test_randomiter.cpp6
-rw-r--r--src/mongo/db/storage/record_store_test_recorditer.cpp16
-rw-r--r--src/mongo/db/storage/record_store_test_recordstore.cpp4
-rw-r--r--src/mongo/db/storage/record_store_test_storagesize.cpp2
-rw-r--r--src/mongo/db/storage/record_store_test_truncate.cpp4
-rw-r--r--src/mongo/db/storage/record_store_test_updaterecord.cpp4
-rw-r--r--src/mongo/db/storage/record_store_test_updatewithdamages.cpp14
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_record_store_test.cpp12
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_record_store_test_harness.cpp4
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_record_store_test_harness.h10
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_standard_record_store_test.cpp6
20 files changed, 91 insertions, 72 deletions
diff --git a/src/mongo/db/commands/create_command.cpp b/src/mongo/db/commands/create_command.cpp
index b7751f0f270..f0fd94a65b7 100644
--- a/src/mongo/db/commands/create_command.cpp
+++ b/src/mongo/db/commands/create_command.cpp
@@ -134,6 +134,13 @@ public:
}
} else {
// Clustered collection.
+ if (cmd.getCapped()) {
+ uassert(ErrorCodes::Error(6127800),
+ "Clustered capped collection only available with 'enableTestCommands' "
+ "server parameter",
+ getTestCommandsEnabled());
+ }
+
uassert(ErrorCodes::Error(6049200),
str::stream() << "'size' field for capped collections is not "
"allowed on clustered collections. "
diff --git a/src/mongo/db/storage/ephemeral_for_test/ephemeral_for_test_record_store_test.cpp b/src/mongo/db/storage/ephemeral_for_test/ephemeral_for_test_record_store_test.cpp
index 81eac126088..15ebe93cad0 100644
--- a/src/mongo/db/storage/ephemeral_for_test/ephemeral_for_test_record_store_test.cpp
+++ b/src/mongo/db/storage/ephemeral_for_test/ephemeral_for_test_record_store_test.cpp
@@ -51,11 +51,11 @@ class RecordStoreHarnessHelper final : public ::mongo::RecordStoreHarnessHelper
public:
RecordStoreHarnessHelper() {}
- virtual std::unique_ptr<mongo::RecordStore> newNonCappedRecordStore() {
- return newNonCappedRecordStore("a.b", CollectionOptions());
+ virtual std::unique_ptr<mongo::RecordStore> newRecordStore() {
+ return newRecordStore("a.b", CollectionOptions());
}
- virtual std::unique_ptr<mongo::RecordStore> newNonCappedRecordStore(
+ virtual std::unique_ptr<mongo::RecordStore> newRecordStore(
const std::string& ns,
const CollectionOptions& collOptions,
KeyFormat keyFormat = KeyFormat::Long) {
diff --git a/src/mongo/db/storage/record_store_test_datafor.cpp b/src/mongo/db/storage/record_store_test_datafor.cpp
index 48a33e4352b..1558f509575 100644
--- a/src/mongo/db/storage/record_store_test_datafor.cpp
+++ b/src/mongo/db/storage/record_store_test_datafor.cpp
@@ -48,7 +48,7 @@ using std::unique_ptr;
// on the returned RecordId.
TEST(RecordStoreTestHarness, DataFor) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
{
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
@@ -88,7 +88,7 @@ TEST(RecordStoreTestHarness, DataFor) {
// on each of the returned RecordIds.
TEST(RecordStoreTestHarness, DataForMultiple) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
{
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
diff --git a/src/mongo/db/storage/record_store_test_datasize.cpp b/src/mongo/db/storage/record_store_test_datasize.cpp
index dcf534b1080..a635159959b 100644
--- a/src/mongo/db/storage/record_store_test_datasize.cpp
+++ b/src/mongo/db/storage/record_store_test_datasize.cpp
@@ -46,7 +46,7 @@ using std::unique_ptr;
// Verify that an empty collection takes up no space.
TEST(RecordStoreTestHarness, DataSizeEmpty) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
{
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
@@ -62,7 +62,7 @@ TEST(RecordStoreTestHarness, DataSizeEmpty) {
// Verify that a nonempty collection takes up some space.
TEST(RecordStoreTestHarness, DataSizeNonEmpty) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
{
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
diff --git a/src/mongo/db/storage/record_store_test_deleterecord.cpp b/src/mongo/db/storage/record_store_test_deleterecord.cpp
index 6af7a3b0474..b40c2153322 100644
--- a/src/mongo/db/storage/record_store_test_deleterecord.cpp
+++ b/src/mongo/db/storage/record_store_test_deleterecord.cpp
@@ -48,7 +48,7 @@ using std::unique_ptr;
// Insert a record and try to delete it.
TEST(RecordStoreTestHarness, DeleteRecord) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
{
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
@@ -92,7 +92,7 @@ TEST(RecordStoreTestHarness, DeleteRecord) {
// Insert multiple records and try to delete them.
TEST(RecordStoreTestHarness, DeleteMultipleRecords) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
{
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
diff --git a/src/mongo/db/storage/record_store_test_harness.cpp b/src/mongo/db/storage/record_store_test_harness.cpp
index 93f0e33359e..dd6a586c1a0 100644
--- a/src/mongo/db/storage/record_store_test_harness.cpp
+++ b/src/mongo/db/storage/record_store_test_harness.cpp
@@ -58,7 +58,7 @@ using std::unique_ptr;
TEST(RecordStoreTestHarness, Simple1) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
{
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
@@ -115,7 +115,7 @@ TEST(RecordStoreTestHarness, Simple1) {
TEST(RecordStoreTestHarness, Delete1) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
{
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
@@ -160,7 +160,7 @@ TEST(RecordStoreTestHarness, Delete1) {
TEST(RecordStoreTestHarness, Delete2) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
{
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
@@ -203,7 +203,7 @@ TEST(RecordStoreTestHarness, Delete2) {
TEST(RecordStoreTestHarness, Update1) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
{
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
@@ -251,7 +251,7 @@ TEST(RecordStoreTestHarness, Update1) {
TEST(RecordStoreTestHarness, UpdateInPlace1) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
if (!rs->updateWithDamagesSupported())
return;
@@ -306,7 +306,7 @@ TEST(RecordStoreTestHarness, UpdateInPlace1) {
TEST(RecordStoreTestHarness, Truncate1) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
{
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
@@ -358,7 +358,7 @@ TEST(RecordStoreTestHarness, Cursor1) {
const int N = 10;
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
{
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
@@ -413,8 +413,7 @@ TEST(RecordStoreTestHarness, ClusteredRecordStore) {
const std::string ns = "test.system.buckets.a";
CollectionOptions options;
options.clusteredIndex = clustered_util::makeCanonicalClusteredInfoForLegacyFormat();
- std::unique_ptr<RecordStore> rs =
- harnessHelper->newNonCappedRecordStore(ns, options, KeyFormat::String);
+ std::unique_ptr<RecordStore> rs = harnessHelper->newRecordStore(ns, options, KeyFormat::String);
invariant(rs->keyFormat() == KeyFormat::String);
auto opCtx = harnessHelper->newOperationContext();
@@ -515,13 +514,27 @@ TEST(RecordStoreTestHarness, ClusteredRecordStore) {
}
}
+// Verify that the internal API is able to create a capped clustered record store
+// with change collection-like format. This test complements the clustered_capped_collection.js
+// which verifies that we prevent a user from creating a capped clustered collections when
+// enableTestCommands is disabled.
+TEST(RecordStoreTestHarness, ClusteredCappedRecordStoreCreation) {
+ const auto harnessHelper = newRecordStoreHarnessHelper();
+ const std::string ns = "config.changes.c";
+ CollectionOptions options;
+ options.clusteredIndex = clustered_util::makeDefaultClusteredIdIndex();
+ options.expireAfterSeconds = 1;
+ options.capped = true;
+ std::unique_ptr<RecordStore> rs = harnessHelper->newRecordStore(ns, options, KeyFormat::String);
+ invariant(rs->keyFormat() == KeyFormat::String);
+}
+
TEST(RecordStoreTestHarness, ClusteredRecordStoreSeekNear) {
const auto harnessHelper = newRecordStoreHarnessHelper();
const std::string ns = "test.system.buckets.a";
CollectionOptions options;
options.clusteredIndex = clustered_util::makeCanonicalClusteredInfoForLegacyFormat();
- std::unique_ptr<RecordStore> rs =
- harnessHelper->newNonCappedRecordStore(ns, options, KeyFormat::String);
+ std::unique_ptr<RecordStore> rs = harnessHelper->newRecordStore(ns, options, KeyFormat::String);
invariant(rs->keyFormat() == KeyFormat::String);
auto opCtx = harnessHelper->newOperationContext();
@@ -592,7 +605,7 @@ TEST(RecordStoreTestHarness, ClusteredRecordMismatchedKeyFormat) {
// Cannot create a clustered record store without KeyFormat::String.
bool failAsExpected = false;
try {
- auto rs = harnessHelper->newNonCappedRecordStore(ns, options);
+ auto rs = harnessHelper->newRecordStore(ns, options);
} catch (DBException& e) {
// 6144101: WiredTiger-specific error code
// 6144102: Ephemeral For Test-specific error code
diff --git a/src/mongo/db/storage/record_store_test_harness.h b/src/mongo/db/storage/record_store_test_harness.h
index a7d89080301..72f087463bf 100644
--- a/src/mongo/db/storage/record_store_test_harness.h
+++ b/src/mongo/db/storage/record_store_test_harness.h
@@ -45,16 +45,15 @@ class RecoveryUnit;
class RecordStoreHarnessHelper : public HarnessHelper {
public:
- virtual std::unique_ptr<RecordStore> newNonCappedRecordStore() = 0;
+ virtual std::unique_ptr<RecordStore> newRecordStore() = 0;
- std::unique_ptr<RecordStore> newNonCappedRecordStore(const std::string& ns) {
- return newNonCappedRecordStore(ns, CollectionOptions());
+ std::unique_ptr<RecordStore> newRecordStore(const std::string& ns) {
+ return newRecordStore(ns, CollectionOptions());
}
- virtual std::unique_ptr<RecordStore> newNonCappedRecordStore(
- const std::string& ns,
- const CollectionOptions& options,
- KeyFormat keyFormat = KeyFormat::Long) = 0;
+ virtual std::unique_ptr<RecordStore> newRecordStore(const std::string& ns,
+ const CollectionOptions& options,
+ KeyFormat keyFormat = KeyFormat::Long) = 0;
virtual std::unique_ptr<RecordStore> newOplogRecordStore() = 0;
diff --git a/src/mongo/db/storage/record_store_test_insertrecord.cpp b/src/mongo/db/storage/record_store_test_insertrecord.cpp
index b5b9afcc9bb..acc6f018f81 100644
--- a/src/mongo/db/storage/record_store_test_insertrecord.cpp
+++ b/src/mongo/db/storage/record_store_test_insertrecord.cpp
@@ -45,7 +45,7 @@ using std::unique_ptr;
// Insert a record and verify the number of entries in the collection is 1.
TEST(RecordStoreTestHarness, InsertRecord) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
{
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
@@ -76,7 +76,7 @@ TEST(RecordStoreTestHarness, InsertRecord) {
// equals the number that were inserted.
TEST(RecordStoreTestHarness, InsertMultipleRecords) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
{
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
diff --git a/src/mongo/db/storage/record_store_test_oplog.cpp b/src/mongo/db/storage/record_store_test_oplog.cpp
index 2382f77acaf..e398d9d2820 100644
--- a/src/mongo/db/storage/record_store_test_oplog.cpp
+++ b/src/mongo/db/storage/record_store_test_oplog.cpp
@@ -252,7 +252,7 @@ TEST(RecordStoreTestHarness, OplogInsertOutOfOrder) {
TEST(RecordStoreTestHarness, SeekNearOnNonOplog) {
std::unique_ptr<RecordStoreHarnessHelper> harnessHelper = newRecordStoreHarnessHelper();
- std::unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore("local.NOT_oplog.foo"));
+ std::unique_ptr<RecordStore> rs(harnessHelper->newRecordStore("local.NOT_oplog.foo"));
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
diff --git a/src/mongo/db/storage/record_store_test_randomiter.cpp b/src/mongo/db/storage/record_store_test_randomiter.cpp
index dda51057e6d..cd340496423 100644
--- a/src/mongo/db/storage/record_store_test_randomiter.cpp
+++ b/src/mongo/db/storage/record_store_test_randomiter.cpp
@@ -46,7 +46,7 @@ using std::unique_ptr;
// Create a random iterator for empty record store.
TEST(RecordStoreTestHarness, GetRandomIteratorEmpty) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
{
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
@@ -67,7 +67,7 @@ TEST(RecordStoreTestHarness, GetRandomIteratorEmpty) {
// Insert multiple records and create a random iterator for the record store
TEST(RecordStoreTestHarness, GetRandomIteratorNonEmpty) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
{
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
@@ -128,7 +128,7 @@ TEST(RecordStoreTestHarness, GetRandomIteratorNonEmpty) {
// Then check we'll retrieve the record.
TEST(RecordStoreTestHarness, GetRandomIteratorSingleton) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
{
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
diff --git a/src/mongo/db/storage/record_store_test_recorditer.cpp b/src/mongo/db/storage/record_store_test_recorditer.cpp
index b7172c61395..c9710ee2222 100644
--- a/src/mongo/db/storage/record_store_test_recorditer.cpp
+++ b/src/mongo/db/storage/record_store_test_recorditer.cpp
@@ -51,7 +51,7 @@ using std::unique_ptr;
// the iterator returns RecordId() and stays at EOF.
TEST(RecordStoreTestHarness, IterateOverMultipleRecords) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
{
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
@@ -101,7 +101,7 @@ TEST(RecordStoreTestHarness, IterateOverMultipleRecords) {
// the iterator returns RecordId() and stays at EOF.
TEST(RecordStoreTestHarness, IterateOverMultipleRecordsReversed) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
{
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
@@ -151,7 +151,7 @@ TEST(RecordStoreTestHarness, IterateOverMultipleRecordsReversed) {
// starting at an interior position.
TEST(RecordStoreTestHarness, IterateStartFromMiddle) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
{
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
@@ -202,7 +202,7 @@ TEST(RecordStoreTestHarness, IterateStartFromMiddle) {
// starting at an interior position.
TEST(RecordStoreTestHarness, IterateStartFromMiddleReversed) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
{
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
@@ -254,7 +254,7 @@ TEST(RecordStoreTestHarness, IterateStartFromMiddleReversed) {
// that the iterator remains EOF.
TEST(RecordStoreTestHarness, RecordIteratorEOF) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
{
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
@@ -325,7 +325,7 @@ TEST(RecordStoreTestHarness, RecordIteratorEOF) {
// Test calling save and restore after each call to next
TEST(RecordStoreTestHarness, RecordIteratorSaveRestore) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
{
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
@@ -387,7 +387,7 @@ TEST(RecordStoreTestHarness, RecordIteratorSaveRestore) {
// that next() returns the second record.
TEST(RecordStoreTestHarness, SeekAfterEofAndContinue) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
@@ -441,7 +441,7 @@ TEST(RecordStoreTestHarness, SeekAfterEofAndContinue) {
// seekExact() must return boost::none if the RecordId does not exist.
TEST(RecordStoreTestHarness, SeekExactForMissingRecordReturnsNone) {
const auto harnessHelper{newRecordStoreHarnessHelper()};
- auto recordStore = harnessHelper->newNonCappedRecordStore();
+ auto recordStore = harnessHelper->newRecordStore();
ServiceContext::UniqueOperationContext opCtx{harnessHelper->newOperationContext()};
// Insert three records and remember their record ids.
diff --git a/src/mongo/db/storage/record_store_test_recordstore.cpp b/src/mongo/db/storage/record_store_test_recordstore.cpp
index 211bd88ea42..945bf48cf2b 100644
--- a/src/mongo/db/storage/record_store_test_recordstore.cpp
+++ b/src/mongo/db/storage/record_store_test_recordstore.cpp
@@ -44,7 +44,7 @@ using std::unique_ptr;
// Verify that the name of the record store is not NULL and nonempty.
TEST(RecordStoreTestHarness, RecordStoreName) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
{
const char* name = rs->name();
@@ -55,7 +55,7 @@ TEST(RecordStoreTestHarness, RecordStoreName) {
// Verify that the namespace of the record store is nonempty.
TEST(RecordStoreTestHarness, Namespace) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
{
string ns = rs->ns();
diff --git a/src/mongo/db/storage/record_store_test_storagesize.cpp b/src/mongo/db/storage/record_store_test_storagesize.cpp
index 57b126b37a5..4dfb3ff9117 100644
--- a/src/mongo/db/storage/record_store_test_storagesize.cpp
+++ b/src/mongo/db/storage/record_store_test_storagesize.cpp
@@ -45,7 +45,7 @@ using std::unique_ptr;
// Verify that a nonempty collection maybe takes up some space on disk.
TEST(RecordStoreTestHarness, StorageSizeNonEmpty) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
{
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
diff --git a/src/mongo/db/storage/record_store_test_truncate.cpp b/src/mongo/db/storage/record_store_test_truncate.cpp
index a37c9a6681c..a26f2a5155e 100644
--- a/src/mongo/db/storage/record_store_test_truncate.cpp
+++ b/src/mongo/db/storage/record_store_test_truncate.cpp
@@ -45,7 +45,7 @@ using std::unique_ptr;
// Verify that calling truncate() on an already empty collection returns an OK status.
TEST(RecordStoreTestHarness, TruncateEmpty) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
{
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
@@ -71,7 +71,7 @@ TEST(RecordStoreTestHarness, TruncateEmpty) {
// removes all of them and returns an OK status.
TEST(RecordStoreTestHarness, TruncateNonEmpty) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
{
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
diff --git a/src/mongo/db/storage/record_store_test_updaterecord.cpp b/src/mongo/db/storage/record_store_test_updaterecord.cpp
index b07d215cfa0..1f777afa916 100644
--- a/src/mongo/db/storage/record_store_test_updaterecord.cpp
+++ b/src/mongo/db/storage/record_store_test_updaterecord.cpp
@@ -45,7 +45,7 @@ using std::unique_ptr;
// Insert a record and try to update it.
TEST(RecordStoreTestHarness, UpdateRecord) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
{
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
@@ -96,7 +96,7 @@ TEST(RecordStoreTestHarness, UpdateRecord) {
// Insert multiple records and try to update them.
TEST(RecordStoreTestHarness, UpdateMultipleRecords) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
{
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
diff --git a/src/mongo/db/storage/record_store_test_updatewithdamages.cpp b/src/mongo/db/storage/record_store_test_updatewithdamages.cpp
index a166499d4a2..87f5fc95e3f 100644
--- a/src/mongo/db/storage/record_store_test_updatewithdamages.cpp
+++ b/src/mongo/db/storage/record_store_test_updatewithdamages.cpp
@@ -49,7 +49,7 @@ using std::unique_ptr;
// Insert a record and try to perform an in-place update on it.
TEST(RecordStoreTestHarness, UpdateWithDamages) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
if (!rs->updateWithDamagesSupported())
return;
@@ -118,7 +118,7 @@ TEST(RecordStoreTestHarness, UpdateWithDamages) {
// containing overlapping DamageEvents.
TEST(RecordStoreTestHarness, UpdateWithOverlappingDamageEvents) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
if (!rs->updateWithDamagesSupported())
return;
@@ -184,7 +184,7 @@ TEST(RecordStoreTestHarness, UpdateWithOverlappingDamageEvents) {
// specified by the DamageVector, and not -- for instance -- by the targetOffset.
TEST(RecordStoreTestHarness, UpdateWithOverlappingDamageEventsReversed) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
if (!rs->updateWithDamagesSupported())
return;
@@ -248,7 +248,7 @@ TEST(RecordStoreTestHarness, UpdateWithOverlappingDamageEventsReversed) {
// Insert a record and try to call updateWithDamages() with an empty DamageVector.
TEST(RecordStoreTestHarness, UpdateWithNoDamages) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
if (!rs->updateWithDamagesSupported())
return;
@@ -303,7 +303,7 @@ TEST(RecordStoreTestHarness, UpdateWithNoDamages) {
// Insert a record and try to perform inserts and updates on it.
TEST(RecordStoreTestHarness, UpdateWithDamagesScalar) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
if (!rs->updateWithDamagesSupported())
return;
@@ -379,7 +379,7 @@ TEST(RecordStoreTestHarness, UpdateWithDamagesScalar) {
// Insert a record with nested documents and try to perform updates on it.
TEST(RecordStoreTestHarness, UpdateWithDamagesNested) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
if (!rs->updateWithDamagesSupported())
return;
@@ -440,7 +440,7 @@ TEST(RecordStoreTestHarness, UpdateWithDamagesNested) {
// Insert a record with nested arrays and try to perform updates on it.
TEST(RecordStoreTestHarness, UpdateWithDamagesArray) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
if (!rs->updateWithDamagesSupported())
return;
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_record_store_test.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_record_store_test.cpp
index 24c10fa085d..47cd2ac0d81 100644
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_record_store_test.cpp
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_record_store_test.cpp
@@ -103,7 +103,7 @@ TEST(WiredTigerRecordStoreTest, GenerateCreateStringValidConfigStringOption) {
TEST(WiredTigerRecordStoreTest, Isolation1) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
RecordId id1;
RecordId id2;
@@ -154,7 +154,7 @@ TEST(WiredTigerRecordStoreTest, Isolation1) {
TEST(WiredTigerRecordStoreTest, Isolation2) {
const auto harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
RecordId id1;
RecordId id2;
@@ -312,7 +312,7 @@ TEST(WiredTigerRecordStoreTest, OplogDurableVisibilityOutOfOrder) {
TEST(WiredTigerRecordStoreTest, AppendCustomStatsMetadata) {
std::unique_ptr<RecordStoreHarnessHelper> harnessHelper = newRecordStoreHarnessHelper();
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore("a.b"));
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore("a.b"));
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
BSONObjBuilder builder;
@@ -336,7 +336,7 @@ TEST(WiredTigerRecordStoreTest, AppendCustomStatsMetadata) {
TEST(WiredTigerRecordStoreTest, AppendCustomNumericStats) {
std::unique_ptr<RecordStoreHarnessHelper> harnessHelper = newRecordStoreHarnessHelper();
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore("a.c"));
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore("a.c"));
ServiceContext::UniqueOperationContext opCtx(harnessHelper->newOperationContext());
BSONObjBuilder builder;
@@ -994,7 +994,7 @@ TEST(WiredTigerRecordStoreTest, GetLatestOplogTest) {
TEST(WiredTigerRecordStoreTest, CursorInActiveTxnAfterNext) {
unique_ptr<RecordStoreHarnessHelper> harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
RecordId rid1;
{
@@ -1034,7 +1034,7 @@ TEST(WiredTigerRecordStoreTest, CursorInActiveTxnAfterNext) {
TEST(WiredTigerRecordStoreTest, CursorInActiveTxnAfterSeek) {
unique_ptr<RecordStoreHarnessHelper> harnessHelper(newRecordStoreHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
RecordId rid1;
{
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_record_store_test_harness.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_record_store_test_harness.cpp
index 40d0c09f53a..4b76b34cec1 100644
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_record_store_test_harness.cpp
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_record_store_test_harness.cpp
@@ -53,7 +53,7 @@ WiredTigerHarnessHelper::WiredTigerHarnessHelper(StringData extraStrings)
_engine.notifyStartupComplete();
}
-std::unique_ptr<RecordStore> WiredTigerHarnessHelper::newNonCappedRecordStore(
+std::unique_ptr<RecordStore> WiredTigerHarnessHelper::newRecordStore(
const std::string& ns, const CollectionOptions& collOptions, KeyFormat keyFormat) {
WiredTigerRecoveryUnit* ru = checked_cast<WiredTigerRecoveryUnit*>(_engine.newRecoveryUnit());
OperationContextNoop opCtx(ru);
@@ -76,7 +76,7 @@ std::unique_ptr<RecordStore> WiredTigerHarnessHelper::newNonCappedRecordStore(
params.ns = ns;
params.ident = ident.toString();
params.engineName = kWiredTigerEngineName;
- params.isCapped = false;
+ params.isCapped = collOptions.capped ? true : false;
params.keyFormat = collOptions.clusteredIndex ? KeyFormat::String : KeyFormat::Long;
params.overwrite = collOptions.clusteredIndex ? false : true;
params.isEphemeral = false;
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_record_store_test_harness.h b/src/mongo/db/storage/wiredtiger/wiredtiger_record_store_test_harness.h
index 43a4007d718..97e9b2ad7b4 100644
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_record_store_test_harness.h
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_record_store_test_harness.h
@@ -44,15 +44,15 @@ public:
WiredTigerHarnessHelper(StringData extraStrings);
~WiredTigerHarnessHelper() {}
- virtual std::unique_ptr<RecordStore> newNonCappedRecordStore() override {
- return newNonCappedRecordStore("a.b");
+ virtual std::unique_ptr<RecordStore> newRecordStore() override {
+ return newRecordStore("a.b");
}
- virtual std::unique_ptr<RecordStore> newNonCappedRecordStore(const std::string& ns) {
- return newNonCappedRecordStore(ns, CollectionOptions());
+ virtual std::unique_ptr<RecordStore> newRecordStore(const std::string& ns) {
+ return newRecordStore(ns, CollectionOptions());
}
- virtual std::unique_ptr<RecordStore> newNonCappedRecordStore(
+ virtual std::unique_ptr<RecordStore> newRecordStore(
const std::string& ns,
const CollectionOptions& collOptions,
KeyFormat keyFormat = KeyFormat::Long) override;
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_standard_record_store_test.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_standard_record_store_test.cpp
index 676c429791f..f4614c82f01 100644
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_standard_record_store_test.cpp
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_standard_record_store_test.cpp
@@ -58,7 +58,7 @@ using std::unique_ptr;
namespace {
TEST(WiredTigerRecordStoreTest, StorageSizeStatisticsDisabled) {
WiredTigerHarnessHelper harnessHelper("statistics=(none)");
- unique_ptr<RecordStore> rs(harnessHelper.newNonCappedRecordStore("a.b"));
+ unique_ptr<RecordStore> rs(harnessHelper.newRecordStore("a.b"));
ServiceContext::UniqueOperationContext opCtx(harnessHelper.newOperationContext());
ASSERT_THROWS(rs->storageSize(opCtx.get()), AssertionException);
@@ -66,7 +66,7 @@ TEST(WiredTigerRecordStoreTest, StorageSizeStatisticsDisabled) {
TEST(WiredTigerRecordStoreTest, SizeStorer1) {
unique_ptr<WiredTigerHarnessHelper> harnessHelper(new WiredTigerHarnessHelper());
- unique_ptr<RecordStore> rs(harnessHelper->newNonCappedRecordStore());
+ unique_ptr<RecordStore> rs(harnessHelper->newRecordStore());
string ident = rs->getIdent();
string uri = checked_cast<WiredTigerRecordStore*>(rs.get())->getURI();
@@ -163,7 +163,7 @@ private:
new WiredTigerSizeStorer(harnessHelper->conn(),
WiredTigerKVEngine::kTableUriPrefix + "sizeStorer",
enableWtLogging));
- rs = harnessHelper->newNonCappedRecordStore();
+ rs = harnessHelper->newRecordStore();
WiredTigerRecordStore* wtrs = checked_cast<WiredTigerRecordStore*>(rs.get());
wtrs->setSizeStorer(sizeStorer.get());
ident = wtrs->getIdent();