diff options
author | Josef Ahmad <josef.ahmad@mongodb.com> | 2022-01-18 13:20:00 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-01-18 13:46:47 +0000 |
commit | fd275f66b712e0af181b53575efbe8a87f214a5e (patch) | |
tree | d41c09eab1a4f252a30221e32540f7b06fed08e0 /src | |
parent | a19f0b1c2575b8423c65f56e81d1e077274d0065 (diff) | |
download | mongo-fd275f66b712e0af181b53575efbe8a87f214a5e.tar.gz |
SERVER-61278 Guard capped clustered collections behind enableTestCommands
Diffstat (limited to 'src')
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(); |