From e01a064f44cf44ad21326e691a97e2e3b9e5e877 Mon Sep 17 00:00:00 2001 From: Jason Dillaman Date: Mon, 20 Apr 2015 14:29:16 -0400 Subject: [PATCH] tests: verify cls_rbd::remove_parent handles snapshots When the deep-flatten feature is enabled, the remove_parent class method should also remove the parent from all snapshots. Signed-off-by: Jason Dillaman --- src/test/cls_rbd/test_cls_rbd.cc | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/test/cls_rbd/test_cls_rbd.cc b/src/test/cls_rbd/test_cls_rbd.cc index c9e4e0964858c..eb9c19c10355f 100644 --- a/src/test/cls_rbd/test_cls_rbd.cc +++ b/src/test/cls_rbd/test_cls_rbd.cc @@ -676,6 +676,22 @@ TEST_F(TestClsRbd, parents) ASSERT_EQ(pspec.snap_id, snapid_t(3)); ASSERT_EQ(size, 2ull<<20); + ASSERT_EQ(0, ioctx.remove(oid)); + ASSERT_EQ(0, create_image(&ioctx, oid, 33<<20, 22, + RBD_FEATURE_LAYERING | RBD_FEATURE_DEEP_FLATTEN, + "foo.")); + ASSERT_EQ(0, set_parent(&ioctx, oid, parent_spec(1, "parent", 3), 100<<20)); + ASSERT_EQ(0, snapshot_add(&ioctx, oid, 1, "snap1")); + ASSERT_EQ(0, snapshot_add(&ioctx, oid, 2, "snap2")); + ASSERT_EQ(0, remove_parent(&ioctx, oid)); + + ASSERT_EQ(0, get_parent(&ioctx, oid, 1, &pspec, &size)); + ASSERT_EQ(-1, pspec.pool_id); + ASSERT_EQ(0, get_parent(&ioctx, oid, 2, &pspec, &size)); + ASSERT_EQ(-1, pspec.pool_id); + ASSERT_EQ(0, get_parent(&ioctx, oid, CEPH_NOSNAP, &pspec, &size)); + ASSERT_EQ(-1, pspec.pool_id); + ioctx.close(); } -- 2.39.5