Skip to content

Commit 4f8aca2

Browse files
committed
test/librbd: cover empty and invalid snap id ranges for diff-iterate
Signed-off-by: Ilya Dryomov <[email protected]>
1 parent a3441a7 commit 4f8aca2

File tree

1 file changed

+74
-6
lines changed

1 file changed

+74
-6
lines changed

src/test/librbd/test_librbd.cc

Lines changed: 74 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7545,6 +7545,10 @@ TYPED_TEST(DiffIterateTest, DiffIterateDeterministic)
75457545
vector_iterate_cb, &extents));
75467546
ASSERT_EQ(0u, extents.size());
75477547

7548+
ASSERT_EQ(-ENOENT, rbd_diff_iterate2(image, "snap1", 0, size, true,
7549+
this->whole_object, vector_iterate_cb,
7550+
&extents));
7551+
75487552
ASSERT_EQ(0, rbd_snap_create(image, "snap1"));
75497553

75507554
std::string buf(256, '1');
@@ -7621,31 +7625,61 @@ TYPED_TEST(DiffIterateTest, DiffIterateDeterministic)
76217625
ASSERT_EQ(diff_extent(1 << order, 256, true, object_size), extents[0]);
76227626
extents.clear();
76237627

7628+
// 8. snap3 -> snap3
7629+
ASSERT_EQ(0, rbd_diff_iterate2(image, "snap3", 0, size, true, this->whole_object,
7630+
vector_iterate_cb, &extents));
7631+
ASSERT_EQ(0u, extents.size());
7632+
76247633
ASSERT_PASSED(this->validate_object_map, image);
76257634
ASSERT_EQ(0, rbd_snap_set(image, "snap2"));
76267635

7627-
// 8. beginning of time -> snap2
7636+
// 9. beginning of time -> snap2
76287637
ASSERT_EQ(0, rbd_diff_iterate2(image, NULL, 0, size, true, this->whole_object,
76297638
vector_iterate_cb, &extents));
76307639
ASSERT_EQ(1u, extents.size());
76317640
ASSERT_EQ(diff_extent(0, 256, true, object_size), extents[0]);
76327641
extents.clear();
76337642

7634-
// 9. snap1 -> snap2
7643+
// 10. snap1 -> snap2
76357644
ASSERT_EQ(0, rbd_diff_iterate2(image, "snap1", 0, size, true, this->whole_object,
76367645
vector_iterate_cb, &extents));
76377646
ASSERT_EQ(1u, extents.size());
76387647
ASSERT_EQ(diff_extent(0, 256, true, object_size), extents[0]);
76397648
extents.clear();
76407649

7650+
// 11. snap2 -> snap2
7651+
ASSERT_EQ(0, rbd_diff_iterate2(image, "snap2", 0, size, true, this->whole_object,
7652+
vector_iterate_cb, &extents));
7653+
ASSERT_EQ(0u, extents.size());
7654+
7655+
// 12. snap3 -> snap2
7656+
ASSERT_EQ(-EINVAL, rbd_diff_iterate2(image, "snap3", 0, size, true,
7657+
this->whole_object, vector_iterate_cb,
7658+
&extents));
7659+
76417660
ASSERT_PASSED(this->validate_object_map, image);
76427661
ASSERT_EQ(0, rbd_snap_set(image, "snap1"));
76437662

7644-
// 10. beginning of time -> snap1
7663+
// 13. beginning of time -> snap1
76457664
ASSERT_EQ(0, rbd_diff_iterate2(image, NULL, 0, size, true, this->whole_object,
76467665
vector_iterate_cb, &extents));
76477666
ASSERT_EQ(0u, extents.size());
76487667

7668+
// 14. snap1 -> snap1
7669+
ASSERT_EQ(0, rbd_diff_iterate2(image, "snap1", 0, size, true, this->whole_object,
7670+
vector_iterate_cb, &extents));
7671+
ASSERT_EQ(0u, extents.size());
7672+
7673+
// 15. snap2 -> snap1
7674+
ASSERT_EQ(-EINVAL, rbd_diff_iterate2(image, "snap2", 0, size, true,
7675+
this->whole_object, vector_iterate_cb,
7676+
&extents));
7677+
7678+
// 16. snap3 -> snap1
7679+
ASSERT_EQ(-EINVAL, rbd_diff_iterate2(image, "snap3", 0, size, true,
7680+
this->whole_object, vector_iterate_cb,
7681+
&extents));
7682+
76497683
ASSERT_PASSED(this->validate_object_map, image);
76507684

76517685
ASSERT_EQ(0, rbd_close(image));
@@ -7678,6 +7712,10 @@ TYPED_TEST(DiffIterateTest, DiffIterateDeterministicPP)
76787712
vector_iterate_cb, &extents));
76797713
ASSERT_EQ(0u, extents.size());
76807714

7715+
ASSERT_EQ(-ENOENT, image.diff_iterate2("snap1", 0, size, true,
7716+
this->whole_object, vector_iterate_cb,
7717+
&extents));
7718+
76817719
ASSERT_EQ(0, image.snap_create("snap1"));
76827720

76837721
ceph::bufferlist bl;
@@ -7755,31 +7793,61 @@ TYPED_TEST(DiffIterateTest, DiffIterateDeterministicPP)
77557793
ASSERT_EQ(diff_extent(1 << order, 256, true, object_size), extents[0]);
77567794
extents.clear();
77577795

7796+
// 8. snap3 -> snap3
7797+
ASSERT_EQ(0, image.diff_iterate2("snap3", 0, size, true, this->whole_object,
7798+
vector_iterate_cb, &extents));
7799+
ASSERT_EQ(0u, extents.size());
7800+
77587801
ASSERT_PASSED(this->validate_object_map, image);
77597802
ASSERT_EQ(0, image.snap_set("snap2"));
77607803

7761-
// 8. beginning of time -> snap2
7804+
// 9. beginning of time -> snap2
77627805
ASSERT_EQ(0, image.diff_iterate2(NULL, 0, size, true, this->whole_object,
77637806
vector_iterate_cb, &extents));
77647807
ASSERT_EQ(1u, extents.size());
77657808
ASSERT_EQ(diff_extent(0, 256, true, object_size), extents[0]);
77667809
extents.clear();
77677810

7768-
// 9. snap1 -> snap2
7811+
// 10. snap1 -> snap2
77697812
ASSERT_EQ(0, image.diff_iterate2("snap1", 0, size, true, this->whole_object,
77707813
vector_iterate_cb, &extents));
77717814
ASSERT_EQ(1u, extents.size());
77727815
ASSERT_EQ(diff_extent(0, 256, true, object_size), extents[0]);
77737816
extents.clear();
77747817

7818+
// 11. snap2 -> snap2
7819+
ASSERT_EQ(0, image.diff_iterate2("snap2", 0, size, true, this->whole_object,
7820+
vector_iterate_cb, &extents));
7821+
ASSERT_EQ(0u, extents.size());
7822+
7823+
// 12. snap3 -> snap2
7824+
ASSERT_EQ(-EINVAL, image.diff_iterate2("snap3", 0, size, true,
7825+
this->whole_object, vector_iterate_cb,
7826+
&extents));
7827+
77757828
ASSERT_PASSED(this->validate_object_map, image);
77767829
ASSERT_EQ(0, image.snap_set("snap1"));
77777830

7778-
// 10. beginning of time -> snap1
7831+
// 13. beginning of time -> snap1
77797832
ASSERT_EQ(0, image.diff_iterate2(NULL, 0, size, true, this->whole_object,
77807833
vector_iterate_cb, &extents));
77817834
ASSERT_EQ(0u, extents.size());
77827835

7836+
// 14. snap1 -> snap1
7837+
ASSERT_EQ(0, image.diff_iterate2("snap1", 0, size, true, this->whole_object,
7838+
vector_iterate_cb, &extents));
7839+
ASSERT_EQ(0u, extents.size());
7840+
7841+
// 15. snap2 -> snap1
7842+
ASSERT_EQ(-EINVAL, image.diff_iterate2("snap2", 0, size, true,
7843+
this->whole_object, vector_iterate_cb,
7844+
&extents));
7845+
7846+
// 16. snap3 -> snap1
7847+
ASSERT_EQ(-EINVAL, image.diff_iterate2("snap3", 0, size, true,
7848+
this->whole_object, vector_iterate_cb,
7849+
&extents));
7850+
77837851
ASSERT_PASSED(this->validate_object_map, image);
77847852
}
77857853

0 commit comments

Comments
 (0)