]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
test/store_test: add BlueFS reserved space tests
authorIgor Fedotov <igor.fedotov@croit.io>
Fri, 7 Mar 2025 17:35:42 +0000 (20:35 +0300)
committerIgor Fedotov <igor.fedotov@croit.io>
Tue, 29 Apr 2025 09:27:40 +0000 (12:27 +0300)
Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
(cherry picked from commit 2e3578b01490c3350a4a955155dabbc2ea2710e8)

src/test/objectstore/store_test.cc

index e98e66b15825b6a0a22aa60cc045991a390ca359..118c37859743e192ad07cbde2850e5cb88963f0e 100644 (file)
@@ -11732,7 +11732,6 @@ TEST_P(StoreTestOmapUpgrade, LargeLegacyToPG) {
   }
 }
 
-
 TEST_P(StoreTest, BlueFS_truncate_remove_race) {
   if (string(GetParam()) != "bluestore")
     GTEST_SKIP();
@@ -11779,6 +11778,32 @@ TEST_P(StoreTest, BlueFS_truncate_remove_race) {
   EXPECT_EQ(store->mount(), 0);
 }
 
+TEST_P(StoreTestSpecificAUSize, BlueFSReservedTest) {
+  if (string(GetParam()) != "bluestore")
+    return;
+
+  uint64_t db_size = 1ull << 32; // 4GiB
+  uint64_t wal_extra = 0x10000;
+  uint64_t wal_size = db_size + wal_extra; // 4GiB + 64K
+  SetVal(g_conf(), "bluestore_block_db_create", "true");
+  SetVal(g_conf(), "bluestore_block_db_size", stringify(db_size).c_str());
+  SetVal(g_conf(), "bluestore_block_wal_create", "true");
+  SetVal(g_conf(), "bluestore_block_wal_size", stringify(wal_size).c_str());
+
+  g_conf().apply_changes(nullptr);
+
+  StartDeferred(65536);
+  BlueStore* bstore = dynamic_cast<BlueStore*> (store.get());
+  ceph_assert(bstore);
+  BlueFS* fs = bstore->get_bluefs();
+
+  ASSERT_EQ(fs->get_full_reserved(BlueFS::BDEV_DB),
+            g_conf()->bluefs_alloc_size);
+
+  ASSERT_EQ(fs->get_full_reserved(BlueFS::BDEV_WAL),
+            wal_extra);
+}
+
 #endif  // WITH_BLUESTORE
 
 int main(int argc, char **argv) {