diff options
Diffstat (limited to 'src/mongo/db/timeseries/bucket_catalog/bucket_catalog_test.cpp')
-rw-r--r-- | src/mongo/db/timeseries/bucket_catalog/bucket_catalog_test.cpp | 45 |
1 files changed, 44 insertions, 1 deletions
diff --git a/src/mongo/db/timeseries/bucket_catalog/bucket_catalog_test.cpp b/src/mongo/db/timeseries/bucket_catalog/bucket_catalog_test.cpp index 4e16dd68ba3..f4e093efc8d 100644 --- a/src/mongo/db/timeseries/bucket_catalog/bucket_catalog_test.cpp +++ b/src/mongo/db/timeseries/bucket_catalog/bucket_catalog_test.cpp @@ -109,6 +109,20 @@ protected: BSONObj _makeTimeseriesOptionsForCreate() const override; }; +class BucketCatalogInMultitenancyEnv : public BucketCatalogTest { +protected: + void setUp() override; + +private: + boost::optional<RAIIServerParameterControllerForTest> __multitenancyController; + +protected: + NamespaceString _tenant1Ns1 = + NamespaceString::createNamespaceString_forTest({TenantId(OID::gen())}, "db1", "coll1"); + NamespaceString _tenant2Ns1 = + NamespaceString::createNamespaceString_forTest({TenantId(OID::gen())}, "db1", "coll1"); +}; + void BucketCatalogTest::setUp() { CatalogTestFixture::setUp(); @@ -123,6 +137,21 @@ void BucketCatalogTest::setUp() { } } +void BucketCatalogInMultitenancyEnv::setUp() { + __multitenancyController.emplace("multitenancySupport", true); + CatalogTestFixture::setUp(); + + _opCtx = operationContext(); + _bucketCatalog = &BucketCatalog::get(_opCtx); + + for (const auto& ns : {_tenant1Ns1, _tenant2Ns1}) { + ASSERT_OK(createCollection( + _opCtx, + ns.dbName(), + BSON("create" << ns.coll() << "timeseries" << _makeTimeseriesOptionsForCreate()))); + } +} + BucketCatalogTest::RunBackgroundTaskAndWaitForFailpoint::RunBackgroundTaskAndWaitForFailpoint( const std::string& failpointName, std::function<void()>&& fn) { auto fp = globalFailPointRegistry().find(failpointName); @@ -586,13 +615,27 @@ TEST_F(BucketCatalogTest, ClearDatabaseBuckets) { _insertOneAndCommit(_ns2, 0); _insertOneAndCommit(_ns3, 0); - clear(*_bucketCatalog, _ns1.db()); + clear(*_bucketCatalog, _ns1.dbName()); _insertOneAndCommit(_ns1, 0); _insertOneAndCommit(_ns2, 0); _insertOneAndCommit(_ns3, 1); } +TEST_F(BucketCatalogInMultitenancyEnv, ClearDatabaseBuckets) { + _insertOneAndCommit(_tenant1Ns1, 0); + _insertOneAndCommit(_tenant2Ns1, 0); + + // Clear the buckets for the database of tenant1. + clear(*_bucketCatalog, _tenant1Ns1.dbName()); + _insertOneAndCommit(_tenant1Ns1, 0); + _insertOneAndCommit(_tenant2Ns1, 1); + + // Clear the buckets for the database of tenant2. + clear(*_bucketCatalog, _tenant2Ns1.dbName()); + _insertOneAndCommit(_tenant2Ns1, 0); +} + TEST_F(BucketCatalogTest, InsertBetweenPrepareAndFinish) { auto batch1 = insert(_opCtx, *_bucketCatalog, |