Skip to content

Commit

Permalink
test: use librados API to retrieve config params
Browse files Browse the repository at this point in the history
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 <dillaman@redhat.com>
(cherry picked from commit 2ed02f3)

Conflicts:
	src/test/librbd/test_librbd.cc (jewel does not have
            006138e or
            cb3712e)
  • Loading branch information
Jason Dillaman authored and smithfarm committed Feb 24, 2017
1 parent d9eaab4 commit 62ce346
Showing 1 changed file with 16 additions and 20 deletions.
36 changes: 16 additions & 20 deletions src/test/librbd/test_librbd.cc
Expand Up @@ -179,6 +179,12 @@ class TestLibRBD : public ::testing::Test {
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));
Expand Down Expand Up @@ -1250,8 +1256,7 @@ TEST_F(TestLibRBD, TestIO)
rados_ioctx_t ioctx;
rados_ioctx_create(_cluster, m_pool_name.c_str(), &ioctx);

CephContext* cct = reinterpret_cast<CephContext*>(_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;
Expand Down Expand Up @@ -1329,8 +1334,7 @@ TEST_F(TestLibRBD, TestIOWithIOHint)
rados_ioctx_t ioctx;
rados_ioctx_create(_cluster, m_pool_name.c_str(), &ioctx);

CephContext* cct = reinterpret_cast<CephContext*>(_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;
Expand Down Expand Up @@ -1543,8 +1547,7 @@ TEST_F(TestLibRBD, TestIOPP)
librados::IoCtx ioctx;
ASSERT_EQ(0, _rados.ioctx_create(m_pool_name.c_str(), ioctx));

CephContext* cct = reinterpret_cast<CephContext*>(_rados.cct());
bool skip_discard = cct->_conf->rbd_skip_partial_discard;
bool skip_discard = is_skip_partial_discard_enabled();

{
librbd::RBD rbd;
Expand Down Expand Up @@ -2578,8 +2581,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<CephContext*>(this->_rados.cct());
bool skip_discard = cct->_conf->rbd_skip_partial_discard;
bool skip_discard = this->is_skip_partial_discard_enabled();

{
librbd::RBD rbd;
Expand Down Expand Up @@ -2729,8 +2731,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<CephContext*>(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;
Expand Down Expand Up @@ -2851,8 +2852,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<CephContext*>(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;
Expand Down Expand Up @@ -2903,8 +2903,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<CephContext*>(this->_rados.cct());
bool skip_discard = cct->_conf->rbd_skip_partial_discard;
bool skip_discard = this->is_skip_partial_discard_enabled();

{
librbd::RBD rbd;
Expand Down Expand Up @@ -2936,8 +2935,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<CephContext*>(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;
Expand Down Expand Up @@ -3893,8 +3891,7 @@ TEST_F(TestLibRBD, BlockingAIO)
librados::IoCtx ioctx;
ASSERT_EQ(0, _rados.ioctx_create(m_pool_name.c_str(), ioctx));

CephContext* cct = reinterpret_cast<CephContext*>(_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();
Expand Down Expand Up @@ -4449,8 +4446,7 @@ TEST_F(TestLibRBD, FlushCacheWithCopyupOnExternalSnapshot) {

TEST_F(TestLibRBD, DiscardAfterWrite)
{
CephContext* cct = reinterpret_cast<CephContext*>(_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));
Expand Down

0 comments on commit 62ce346

Please sign in to comment.