]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: Adapt multi bdev label tests for !bdev->supported_bdev_label()
authorAdam Kupczyk <akupczyk@ibm.com>
Wed, 7 Feb 2024 17:26:50 +0000 (17:26 +0000)
committerPere Diaz Bou <pere-altea@hotmail.com>
Fri, 23 Aug 2024 09:49:24 +0000 (11:49 +0200)
Just skip tests.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 660709154795a299e81054229968ae3169afb3c6)

src/os/bluestore/BlueStore.h
src/test/objectstore/store_test.cc

index 47b501f1419743886d31cd9d08321379bc9499e3..bc3c3cb531d16f38e019ad95e14baf0d5cb62bd5 100644 (file)
@@ -3352,6 +3352,9 @@ public:
   KeyValueDB* get_kv() {
     return db;
   }
+  BlockDevice* get_bdev() {
+    return bdev;
+  }
 
   int queue_transactions(
     CollectionHandle& ch,
index f3893f3aa45a5009e93401734250c35e3e5ed105..0c233876d766bfe43d7403aebc52aa698d22a00c 100644 (file)
@@ -198,6 +198,13 @@ class MultiLabelTest : public StoreTestDeferredSetup {
     store->umount();
     mounted = false;
   }
+  bool bdev_supports_label() {
+    BlueStore* bstore = dynamic_cast<BlueStore*> (store.get());
+    if (!bstore) return false;
+    auto bdev = bstore->get_bdev();
+    if (!bdev) return false;
+    return bdev->supported_bdev_label();
+  }
   bool corrupt_disk_at(uint64_t position) {
     int fd = -1;
     auto close_fd = make_scope_guard([&] {
@@ -10361,20 +10368,26 @@ TEST_P(MultiLabelTest, MultiSelectableOff) {
   SetVal(g_conf(), "bluestore_bdev_label_multi", "false");
   g_conf().apply_changes(nullptr);
   DeferredSetup();
-  store->umount();
+  if (!bdev_supports_label()) {
+    GTEST_SKIP();
+  }
+  umount();
   bluestore_bdev_label_t label;
   int r = BlueStore::_read_bdev_label(
     g_ceph_context, get_data_dir() + "/block", &label, 0);
   ASSERT_EQ(r, 0);
   ASSERT_EQ(label.meta.end(), label.meta.find("multi"));
-  store->mount();
+  mount();
 }
 
 TEST_P(MultiLabelTest, MultiSelectableOn) {
   SetVal(g_conf(), "bluestore_bdev_label_multi", "true");
   g_conf().apply_changes(nullptr);
   DeferredSetup();
-  store->umount();
+  if (!bdev_supports_label()) {
+    GTEST_SKIP();
+  }
+  umount();
   bluestore_bdev_label_t label;
   int r = BlueStore::_read_bdev_label(
     g_ceph_context, get_data_dir() + "/block", &label, 0);
@@ -10382,7 +10395,7 @@ TEST_P(MultiLabelTest, MultiSelectableOn) {
   auto it = label.meta.find("multi");
   ASSERT_NE(label.meta.end(), it);
   ASSERT_EQ(it->second, "yes");
-  store->mount();
+  mount();
 }
 
 TEST_P(MultiLabelTest, DetectCorruptedFirst) {
@@ -10391,6 +10404,9 @@ TEST_P(MultiLabelTest, DetectCorruptedFirst) {
   SetVal(g_conf(), "bluestore_bdev_label_multi", "true");
   g_conf().apply_changes(nullptr);
   DeferredSetup();
+  if (!bdev_supports_label()) {
+    GTEST_SKIP();
+  }
   umount();
   bool corrupt = corrupt_disk_at(0);
   ASSERT_EQ(corrupt, true);
@@ -10404,6 +10420,9 @@ TEST_P(MultiLabelTest, FixCorruptedFirst) {
   SetVal(g_conf(), "bluestore_bdev_label_multi", "true");
   g_conf().apply_changes(nullptr);
   DeferredSetup();
+  if (!bdev_supports_label()) {
+    GTEST_SKIP();
+  }
   umount();
   bool corrupt = corrupt_disk_at(0);
   ASSERT_EQ(corrupt, true);
@@ -10419,6 +10438,9 @@ TEST_P(MultiLabelTest, FixCorruptedTwo) {
   SetVal(g_conf(), "bluestore_bdev_label_multi", "true");
   g_conf().apply_changes(nullptr);
   DeferredSetup();
+  if (!bdev_supports_label()) {
+    GTEST_SKIP();
+  }
   umount();
   bool corrupt = corrupt_disk_at(0);
   ASSERT_EQ(corrupt, true);
@@ -10436,6 +10458,9 @@ TEST_P(MultiLabelTest, FixCorruptedThree) {
   SetVal(g_conf(), "bluestore_bdev_label_multi", "true");
   g_conf().apply_changes(nullptr);
   DeferredSetup();
+  if (!bdev_supports_label()) {
+    GTEST_SKIP();
+  }
   umount();
   bool corrupt = corrupt_disk_at(0);
   ASSERT_EQ(corrupt, true);
@@ -10455,6 +10480,9 @@ TEST_P(MultiLabelTest, CantFixCorruptedAll) {
   SetVal(g_conf(), "bluestore_bdev_label_multi", "true");
   g_conf().apply_changes(nullptr);
   DeferredSetup();
+  if (!bdev_supports_label()) {
+    GTEST_SKIP();
+  }
   umount();
   bool corrupt = corrupt_disk_at(0);
   ASSERT_EQ(corrupt, true);
@@ -10475,6 +10503,9 @@ TEST_P(MultiLabelTest, SelectNewestLabel) {
   SetVal(g_conf(), "bluestore_bdev_label_multi", "true");
   g_conf().apply_changes(nullptr);
   DeferredSetup();
+  if (!bdev_supports_label()) {
+    GTEST_SKIP();
+  }
   umount();
   bluestore_bdev_label_t label;
   int r = BlueStore::_read_bdev_label(
@@ -10502,6 +10533,9 @@ TEST_P(MultiLabelTest, UpgradeToMultiLabel) {
   SetVal(g_conf(), "bluestore_bdev_label_multi_upgrade", "true");
   g_conf().apply_changes(nullptr);
   DeferredSetup();
+  if (!bdev_supports_label()) {
+    GTEST_SKIP();
+  }
   umount();
   ASSERT_EQ(store->repair(false), 0);
   ASSERT_EQ(store->fsck(false), 0);
@@ -10523,6 +10557,9 @@ TEST_P(MultiLabelTest, UpgradeToMultiLabelCollisionWithBlueFS) {
   SetVal(g_conf(), "bluestore_bdev_label_multi_upgrade", "true");
   g_conf().apply_changes(nullptr);
   DeferredSetup();
+  if (!bdev_supports_label()) {
+    GTEST_SKIP();
+  }
   //fill BlueFS with data
   BlueStore* bstore = dynamic_cast<BlueStore*> (store.get());
   ceph_assert(bstore);
@@ -10553,6 +10590,9 @@ TEST_P(MultiLabelTest, UpgradeToMultiLabelCollisionObjects) {
   SetVal(g_conf(), "bluestore_bdev_label_multi_upgrade", "true");
   g_conf().apply_changes(nullptr);
   DeferredSetup();
+  if (!bdev_supports_label()) {
+    GTEST_SKIP();
+  }
   //fill with object data
   coll_t cid;
   auto ch = store->create_new_collection(cid);