From: Kefu Chai Date: Mon, 9 Sep 2019 10:39:41 +0000 (+0800) Subject: test/cls_rbd/test_cls_rbd: update TestClsRbd.sparsify X-Git-Tag: v14.2.5~171^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=48c084a9a5aa54513dc073febc53eb017bd5db1d;p=ceph.git test/cls_rbd/test_cls_rbd: update TestClsRbd.sparsify after #30061, extents returned by sparse read will always be an empty map as long as the extents to be read is empty or the extent(s) in it are empty, even of the objectstorage does not support sparse read. Fixes: https://tracker.ceph.com/issues/41721 Signed-off-by: Kefu Chai (cherry picked from commit 855d84d283124a0e2264172e849632317810556a) --- diff --git a/src/test/cls_rbd/test_cls_rbd.cc b/src/test/cls_rbd/test_cls_rbd.cc index b3ee9e44a12b..05f8f364544d 100644 --- a/src/test/cls_rbd/test_cls_rbd.cc +++ b/src/test/cls_rbd/test_cls_rbd.cc @@ -3073,13 +3073,20 @@ TEST_F(TestClsRbd, sparsify) ASSERT_EQ(0, sparsify(&ioctx, oid, 16, false)); std::map m; bufferlist outbl; - std::map expected_m = {{0, 0}}; + std::map expected_m; bufferlist expected_outbl; - if (sparse_read_supported) { + switch (int r = ioctx.sparse_read(oid, m, outbl, inbl.length(), 0); r) { + case 0: expected_m = {}; + ASSERT_EQ(expected_m, m); + break; + case 1: + expected_m = {{0, 0}}; + ASSERT_EQ(expected_m, m); + break; + default: + FAIL() << r << " is odd"; } - ASSERT_EQ((int)expected_m.size(), - ioctx.sparse_read(oid, m, outbl, inbl.length(), 0)); ASSERT_EQ(m, expected_m); ASSERT_EQ(0, sparsify(&ioctx, oid, 16, true)); ASSERT_EQ(-ENOENT, sparsify(&ioctx, oid, 16, true));