From 855d84d283124a0e2264172e849632317810556a Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Mon, 9 Sep 2019 18:39:41 +0800 Subject: [PATCH] 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 --- src/test/cls_rbd/test_cls_rbd.cc | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) 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)); -- 2.47.3