From 48c084a9a5aa54513dc073febc53eb017bd5db1d 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 (cherry picked from commit 855d84d283124a0e2264172e849632317810556a) --- 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 b3ee9e44a12b9..05f8f364544da 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)); -- 2.39.5