summaryrefslogtreecommitdiff
path: root/src/mongo/db/timeseries/bucket_catalog/bucket_catalog_test.cpp
diff options
context:
space:
mode:
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.cpp45
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,