ASSERT_PASSED(write_test_data, image, zero_data, 0, TEST_IO_SIZE,
LIBRADOS_OP_FLAG_FADVISE_NOCACHE);
+ mismatch_offset = 123;
ASSERT_EQ(-EILSEQ, rbd_compare_and_write(image, 0, TEST_IO_SIZE,
mismatch_data, mismatch_data, &mismatch_offset, 0));
ASSERT_EQ(0U, mismatch_offset);
rbd_aio_create_completion(NULL, (rbd_callback_t) simple_read_cb, &comp);
+ mismatch_offset = 123;
ASSERT_EQ(0, rbd_aio_compare_and_write(image, 0, TEST_IO_SIZE, mismatch_data,
mismatch_data, comp, &mismatch_offset, 0));
ASSERT_EQ(0, rbd_aio_wait_for_complete(comp));
+ ASSERT_EQ(-EILSEQ, rbd_aio_get_return_value(comp));
ASSERT_EQ(0U, mismatch_offset);
rbd_aio_release(comp);
rbd_aio_release(comp);
ASSERT_PASSED(write_test_data, image, zero_data, 0, TEST_IO_SIZE, LIBRADOS_OP_FLAG_FADVISE_NOCACHE);
+ mismatch_offset = 123;
ASSERT_EQ(-EILSEQ, rbd_compare_and_write(image, 0, TEST_IO_SIZE, mismatch_data, mismatch_data,
&mismatch_offset, LIBRADOS_OP_FLAG_FADVISE_DONTNEED));
ASSERT_EQ(0U, mismatch_offset);
rbd_aio_create_completion(NULL, (rbd_callback_t) simple_read_cb, &comp);
+ mismatch_offset = 123;
ASSERT_EQ(0, rbd_aio_compare_and_write(image, 0, TEST_IO_SIZE, mismatch_data, mismatch_data,
comp, &mismatch_offset, LIBRADOS_OP_FLAG_FADVISE_DONTNEED));
ASSERT_EQ(0, rbd_aio_wait_for_complete(comp));
+ ASSERT_EQ(-EILSEQ, rbd_aio_get_return_value(comp));
ASSERT_EQ(0U, mismatch_offset);
rbd_aio_release(comp);
TEST_F(TestLibRBD, TestCompareAndWriteStripeUnitUnaligned)
{
+ REQUIRE(!is_rbd_pwl_enabled((CephContext *)_rados.cct()));
+
rados_ioctx_t ioctx;
rados_ioctx_create(_cluster, m_pool_name.c_str(), &ioctx);
TEST_F(TestLibRBD, TestAioCompareAndWriteStripeUnitUnaligned)
{
+ REQUIRE(!is_rbd_pwl_enabled((CephContext *)_rados.cct()));
+
rados_ioctx_t ioctx;
rados_ioctx_create(_cluster, m_pool_name.c_str(), &ioctx);
TEST_F(TestLibRBD, TestCompareAndWriteTooLarge)
{
+ REQUIRE(!is_rbd_pwl_enabled((CephContext *)_rados.cct()));
+
rados_ioctx_t ioctx;
rados_ioctx_create(_cluster, m_pool_name.c_str(), &ioctx);
TEST_F(TestLibRBD, TestAioCompareAndWriteTooLarge)
{
+ REQUIRE(!is_rbd_pwl_enabled((CephContext *)_rados.cct()));
+
rados_ioctx_t ioctx;
rados_ioctx_create(_cluster, m_pool_name.c_str(), &ioctx);
comp, &mismatch_off, 0);
ASSERT_EQ(-EINVAL, ret);
ASSERT_EQ(0U, mismatch_off);
+ comp->release();
ASSERT_PASSED(validate_object_map, image);
}
comp, &mismatch_off, 0);
ASSERT_EQ(-EINVAL, ret);
ASSERT_EQ(0U, mismatch_off);
+ comp->release();
ASSERT_PASSED(validate_object_map, image);
}
TEST_F(TestLibRBD, TestCompareAndWriteStripeUnitUnalignedPP)
{
+ REQUIRE(!is_rbd_pwl_enabled((CephContext *)_rados.cct()));
+
librados::IoCtx ioctx;
ASSERT_EQ(0, _rados.ioctx_create(m_pool_name.c_str(), ioctx));
TEST_F(TestLibRBD, TestAioCompareAndWriteStripeUnitUnalignedPP)
{
+ REQUIRE(!is_rbd_pwl_enabled((CephContext *)_rados.cct()));
+
librados::IoCtx ioctx;
ASSERT_EQ(0, _rados.ioctx_create(m_pool_name.c_str(), ioctx));
TEST_F(TestLibRBD, TestCompareAndWriteTooLargePP)
{
+ REQUIRE(!is_rbd_pwl_enabled((CephContext *)_rados.cct()));
+
librados::IoCtx ioctx;
ASSERT_EQ(0, _rados.ioctx_create(m_pool_name.c_str(), ioctx));
TEST_F(TestLibRBD, TestAioCompareAndWriteTooLargePP)
{
+ REQUIRE(!is_rbd_pwl_enabled((CephContext *)_rados.cct()));
+
librados::IoCtx ioctx;
ASSERT_EQ(0, _rados.ioctx_create(m_pool_name.c_str(), ioctx));