From: Jason Dillaman Date: Tue, 24 Jan 2017 02:24:41 +0000 (-0500) Subject: test: use librados API to retrieve config params X-Git-Tag: v11.2.1~224^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c5976ac36751e15fd81c67945a2c6d049dc7b316;p=ceph.git test: use librados API to retrieve config params The CephContext object is not ABI-stable, so it is necessary to use the "conf_get" librados methods to safely retrieve a setting. Fixes: http://tracker.ceph.com/issues/18617 Signed-off-by: Jason Dillaman (cherry picked from commit 8ad40645ac3948f8341e9a80ce8aff8ac5b9ad11) Conflicts: src/test/librbd/test_librbd.cc: trivial resolution --- diff --git a/src/test/librbd/test_librbd.cc b/src/test/librbd/test_librbd.cc index 155b615a1ee1..e30371b149b6 100644 --- a/src/test/librbd/test_librbd.cc +++ b/src/test/librbd/test_librbd.cc @@ -183,6 +183,12 @@ public: ASSERT_NE("", m_pool_name = create_pool()); } + bool is_skip_partial_discard_enabled() { + std::string value; + EXPECT_EQ(0, _rados.conf_get("rbd_skip_partial_discard", value)); + return value == "true"; + } + void validate_object_map(rbd_image_t image, bool *passed) { uint64_t flags; ASSERT_EQ(0, rbd_get_flags(image, &flags)); @@ -1314,8 +1320,7 @@ TEST_F(TestLibRBD, TestIO) rados_ioctx_t ioctx; rados_ioctx_create(_cluster, m_pool_name.c_str(), &ioctx); - CephContext* cct = reinterpret_cast(_rados.cct()); - bool skip_discard = cct->_conf->rbd_skip_partial_discard; + bool skip_discard = is_skip_partial_discard_enabled(); rbd_image_t image; int order = 0; @@ -1393,8 +1398,7 @@ TEST_F(TestLibRBD, TestIOWithIOHint) rados_ioctx_t ioctx; rados_ioctx_create(_cluster, m_pool_name.c_str(), &ioctx); - CephContext* cct = reinterpret_cast(_rados.cct()); - bool skip_discard = cct->_conf->rbd_skip_partial_discard; + bool skip_discard = is_skip_partial_discard_enabled(); rbd_image_t image; int order = 0; @@ -1481,8 +1485,7 @@ TEST_F(TestLibRBD, TestDataPoolIO) std::string data_pool_name = create_pool(true); - CephContext* cct = reinterpret_cast(_rados.cct()); - bool skip_discard = cct->_conf->rbd_skip_partial_discard; + bool skip_discard = is_skip_partial_discard_enabled(); rbd_image_t image; std::string name = get_temp_image_name(); @@ -1707,8 +1710,7 @@ TEST_F(TestLibRBD, TestIOPP) librados::IoCtx ioctx; ASSERT_EQ(0, _rados.ioctx_create(m_pool_name.c_str(), ioctx)); - CephContext* cct = reinterpret_cast(_rados.cct()); - bool skip_discard = cct->_conf->rbd_skip_partial_discard; + bool skip_discard = is_skip_partial_discard_enabled(); { librbd::RBD rbd; @@ -2748,8 +2750,7 @@ TYPED_TEST(DiffIterateTest, DiffIterate) librados::IoCtx ioctx; ASSERT_EQ(0, this->_rados.ioctx_create(this->m_pool_name.c_str(), ioctx)); - CephContext* cct = reinterpret_cast(this->_rados.cct()); - bool skip_discard = cct->_conf->rbd_skip_partial_discard; + bool skip_discard = this->is_skip_partial_discard_enabled(); { librbd::RBD rbd; @@ -2899,8 +2900,7 @@ TYPED_TEST(DiffIterateTest, DiffIterateStress) librados::IoCtx ioctx; ASSERT_EQ(0, this->_rados.ioctx_create(this->m_pool_name.c_str(), ioctx)); - CephContext* cct = reinterpret_cast(this->_rados.cct()); - bool skip_discard = cct->_conf->rbd_skip_partial_discard; + bool skip_discard = this->is_skip_partial_discard_enabled(); librbd::RBD rbd; librbd::Image image; @@ -3021,8 +3021,7 @@ TYPED_TEST(DiffIterateTest, DiffIterateIgnoreParent) librados::IoCtx ioctx; ASSERT_EQ(0, this->_rados.ioctx_create(this->m_pool_name.c_str(), ioctx)); - CephContext* cct = reinterpret_cast(this->_rados.cct()); - bool skip_discard = cct->_conf->rbd_skip_partial_discard; + bool skip_discard = this->is_skip_partial_discard_enabled(); librbd::RBD rbd; librbd::Image image; @@ -3073,8 +3072,7 @@ TYPED_TEST(DiffIterateTest, DiffIterateCallbackError) librados::IoCtx ioctx; ASSERT_EQ(0, this->_rados.ioctx_create(this->m_pool_name.c_str(), ioctx)); - CephContext* cct = reinterpret_cast(this->_rados.cct()); - bool skip_discard = cct->_conf->rbd_skip_partial_discard; + bool skip_discard = this->is_skip_partial_discard_enabled(); { librbd::RBD rbd; @@ -3106,8 +3104,7 @@ TYPED_TEST(DiffIterateTest, DiffIterateParentDiscard) librados::IoCtx ioctx; ASSERT_EQ(0, this->_rados.ioctx_create(this->m_pool_name.c_str(), ioctx)); - CephContext* cct = reinterpret_cast(this->_rados.cct()); - bool skip_discard = cct->_conf->rbd_skip_partial_discard; + bool skip_discard = this->is_skip_partial_discard_enabled(); librbd::RBD rbd; librbd::Image image; @@ -4252,8 +4249,7 @@ TEST_F(TestLibRBD, BlockingAIO) librados::IoCtx ioctx; ASSERT_EQ(0, _rados.ioctx_create(m_pool_name.c_str(), ioctx)); - CephContext* cct = reinterpret_cast(_rados.cct()); - bool skip_discard = cct->_conf->rbd_skip_partial_discard; + bool skip_discard = is_skip_partial_discard_enabled(); librbd::RBD rbd; std::string name = get_temp_image_name(); @@ -5034,8 +5030,7 @@ TEST_F(TestLibRBD, ExclusiveLock) TEST_F(TestLibRBD, DiscardAfterWrite) { - CephContext* cct = reinterpret_cast(_rados.cct()); - REQUIRE(!cct->_conf->rbd_skip_partial_discard); + REQUIRE(!is_skip_partial_discard_enabled()); librados::IoCtx ioctx; ASSERT_EQ(0, _rados.ioctx_create(m_pool_name.c_str(), ioctx));