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: v15.1.0~1627^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F30258%2Fhead;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 --- diff --git a/src/test/cls_rbd/test_cls_rbd.cc b/src/test/cls_rbd/test_cls_rbd.cc index 724bfa21ebf9..9a4adccc964d 100644 --- a/src/test/cls_rbd/test_cls_rbd.cc +++ b/src/test/cls_rbd/test_cls_rbd.cc @@ -3141,13 +3141,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));