From: Jason Dillaman Date: Thu, 17 Dec 2015 16:09:18 +0000 (-0500) Subject: tests: updated librbd test cases for updated maint ops API X-Git-Tag: v10.0.3~24^2~13 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=20b9b2e29d2c817b8e8366f0a2ad16dec1ad5518;p=ceph.git tests: updated librbd test cases for updated maint ops API Signed-off-by: Jason Dillaman --- diff --git a/src/test/librbd/object_map/test_mock_InvalidateRequest.cc b/src/test/librbd/object_map/test_mock_InvalidateRequest.cc index 9c0f4ea6f4c4..9f20a4799dc8 100644 --- a/src/test/librbd/object_map/test_mock_InvalidateRequest.cc +++ b/src/test/librbd/object_map/test_mock_InvalidateRequest.cc @@ -77,7 +77,7 @@ TEST_F(TestMockObjectMapInvalidateRequest, UpdatesSnapOnDiskFlag) { librbd::ImageCtx *ictx; ASSERT_EQ(0, open_image(m_image_name, &ictx)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); ASSERT_EQ(0, librbd::snap_set(ictx, "snap1")); C_SaferCond cond_ctx; diff --git a/src/test/librbd/object_map/test_mock_ResizeRequest.cc b/src/test/librbd/object_map/test_mock_ResizeRequest.cc index 197fabeb60b9..f21d645f81b3 100644 --- a/src/test/librbd/object_map/test_mock_ResizeRequest.cc +++ b/src/test/librbd/object_map/test_mock_ResizeRequest.cc @@ -98,7 +98,7 @@ TEST_F(TestMockObjectMapResizeRequest, UpdateSnapOnDisk) { librbd::ImageCtx *ictx; ASSERT_EQ(0, open_image(m_image_name, &ictx)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); ASSERT_EQ(0, librbd::snap_set(ictx, "snap1")); uint64_t snap_id = ictx->snap_id; diff --git a/src/test/librbd/object_map/test_mock_SnapshotRemoveRequest.cc b/src/test/librbd/object_map/test_mock_SnapshotRemoveRequest.cc index 224a43d68d44..a29699e86fdf 100644 --- a/src/test/librbd/object_map/test_mock_SnapshotRemoveRequest.cc +++ b/src/test/librbd/object_map/test_mock_SnapshotRemoveRequest.cc @@ -76,7 +76,7 @@ TEST_F(TestMockObjectMapSnapshotRemoveRequest, Success) { librbd::ImageCtx *ictx; ASSERT_EQ(0, open_image(m_image_name, &ictx)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); ASSERT_EQ(0, ictx->state->refresh_if_required()); uint64_t snap_id = ictx->snap_info.rbegin()->first; @@ -105,7 +105,7 @@ TEST_F(TestMockObjectMapSnapshotRemoveRequest, LoadMapError) { librbd::ImageCtx *ictx; ASSERT_EQ(0, open_image(m_image_name, &ictx)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); ASSERT_EQ(0, ictx->state->refresh_if_required()); uint64_t snap_id = ictx->snap_info.rbegin()->first; @@ -132,7 +132,7 @@ TEST_F(TestMockObjectMapSnapshotRemoveRequest, RemoveSnapshotMissing) { librbd::ImageCtx *ictx; ASSERT_EQ(0, open_image(m_image_name, &ictx)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); ASSERT_EQ(0, ictx->state->refresh_if_required()); uint64_t snap_id = ictx->snap_info.rbegin()->first; @@ -159,7 +159,7 @@ TEST_F(TestMockObjectMapSnapshotRemoveRequest, RemoveSnapshotError) { librbd::ImageCtx *ictx; ASSERT_EQ(0, open_image(m_image_name, &ictx)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); ASSERT_EQ(0, ictx->state->refresh_if_required()); uint64_t snap_id = ictx->snap_info.rbegin()->first; @@ -187,7 +187,7 @@ TEST_F(TestMockObjectMapSnapshotRemoveRequest, RemoveMapMissing) { librbd::ImageCtx *ictx; ASSERT_EQ(0, open_image(m_image_name, &ictx)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); ASSERT_EQ(0, ictx->state->refresh_if_required()); uint64_t snap_id = ictx->snap_info.rbegin()->first; @@ -216,7 +216,7 @@ TEST_F(TestMockObjectMapSnapshotRemoveRequest, RemoveMapError) { librbd::ImageCtx *ictx; ASSERT_EQ(0, open_image(m_image_name, &ictx)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); ASSERT_EQ(0, ictx->state->refresh_if_required()); uint64_t snap_id = ictx->snap_info.rbegin()->first; @@ -245,7 +245,7 @@ TEST_F(TestMockObjectMapSnapshotRemoveRequest, ScrubCleanObjects) { librbd::ImageCtx *ictx; ASSERT_EQ(0, open_image(m_image_name, &ictx)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); ASSERT_EQ(0, ictx->state->refresh_if_required()); uint64_t snap_id = ictx->snap_info.rbegin()->first; diff --git a/src/test/librbd/object_map/test_mock_SnapshotRollbackRequest.cc b/src/test/librbd/object_map/test_mock_SnapshotRollbackRequest.cc index 25c615bf328f..2465ffd5f268 100644 --- a/src/test/librbd/object_map/test_mock_SnapshotRollbackRequest.cc +++ b/src/test/librbd/object_map/test_mock_SnapshotRollbackRequest.cc @@ -66,7 +66,7 @@ TEST_F(TestMockObjectMapSnapshotRollbackRequest, Success) { librbd::ImageCtx *ictx; ASSERT_EQ(0, open_image(m_image_name, &ictx)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); ASSERT_EQ(0, ictx->state->refresh_if_required()); uint64_t snap_id = ictx->snap_info.rbegin()->first; @@ -87,7 +87,7 @@ TEST_F(TestMockObjectMapSnapshotRollbackRequest, ReadMapError) { librbd::ImageCtx *ictx; ASSERT_EQ(0, open_image(m_image_name, &ictx)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); ASSERT_EQ(0, ictx->state->refresh_if_required()); uint64_t snap_id = ictx->snap_info.rbegin()->first; @@ -115,7 +115,7 @@ TEST_F(TestMockObjectMapSnapshotRollbackRequest, WriteMapError) { librbd::ImageCtx *ictx; ASSERT_EQ(0, open_image(m_image_name, &ictx)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); ASSERT_EQ(0, ictx->state->refresh_if_required()); uint64_t snap_id = ictx->snap_info.rbegin()->first; diff --git a/src/test/librbd/object_map/test_mock_UpdateRequest.cc b/src/test/librbd/object_map/test_mock_UpdateRequest.cc index bc5cafab9102..0d7dffad5b7f 100644 --- a/src/test/librbd/object_map/test_mock_UpdateRequest.cc +++ b/src/test/librbd/object_map/test_mock_UpdateRequest.cc @@ -114,7 +114,7 @@ TEST_F(TestMockObjectMapUpdateRequest, UpdateSnapOnDisk) { librbd::ImageCtx *ictx; ASSERT_EQ(0, open_image(m_image_name, &ictx)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); ASSERT_EQ(0, librbd::snap_set(ictx, "snap1")); uint64_t snap_id = ictx->snap_id; @@ -169,7 +169,7 @@ TEST_F(TestMockObjectMapUpdateRequest, RebuildSnapOnDisk) { librbd::ImageCtx *ictx; ASSERT_EQ(0, open_image(m_image_name, &ictx)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); ASSERT_EQ(0, ictx->state->refresh_if_required()); ASSERT_EQ(CEPH_NOSNAP, ictx->snap_id); diff --git a/src/test/librbd/operation/test_mock_SnapshotProtectRequest.cc b/src/test/librbd/operation/test_mock_SnapshotProtectRequest.cc index 3c64d2738811..ab7a8e485eea 100644 --- a/src/test/librbd/operation/test_mock_SnapshotProtectRequest.cc +++ b/src/test/librbd/operation/test_mock_SnapshotProtectRequest.cc @@ -61,7 +61,7 @@ TEST_F(TestMockOperationSnapshotProtectRequest, Success) { librbd::ImageCtx *ictx; ASSERT_EQ(0, open_image(m_image_name, &ictx)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); ASSERT_EQ(0, ictx->state->refresh_if_required()); MockImageCtx mock_image_ctx(*ictx); @@ -88,7 +88,7 @@ TEST_F(TestMockOperationSnapshotProtectRequest, GetSnapIdMissing) { librbd::ImageCtx *ictx; ASSERT_EQ(0, open_image(m_image_name, &ictx)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); ASSERT_EQ(0, ictx->state->refresh_if_required()); MockImageCtx mock_image_ctx(*ictx); @@ -113,7 +113,7 @@ TEST_F(TestMockOperationSnapshotProtectRequest, IsSnapProtectedError) { librbd::ImageCtx *ictx; ASSERT_EQ(0, open_image(m_image_name, &ictx)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); ASSERT_EQ(0, ictx->state->refresh_if_required()); MockImageCtx mock_image_ctx(*ictx); @@ -139,7 +139,7 @@ TEST_F(TestMockOperationSnapshotProtectRequest, SnapAlreadyProtected) { librbd::ImageCtx *ictx; ASSERT_EQ(0, open_image(m_image_name, &ictx)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); ASSERT_EQ(0, ictx->state->refresh_if_required()); MockImageCtx mock_image_ctx(*ictx); @@ -165,7 +165,7 @@ TEST_F(TestMockOperationSnapshotProtectRequest, SetProtectionStateError) { librbd::ImageCtx *ictx; ASSERT_EQ(0, open_image(m_image_name, &ictx)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); ASSERT_EQ(0, ictx->state->refresh_if_required()); MockImageCtx mock_image_ctx(*ictx); diff --git a/src/test/librbd/operation/test_mock_SnapshotRemoveRequest.cc b/src/test/librbd/operation/test_mock_SnapshotRemoveRequest.cc index 122f4bf1761b..fc1fe2a9cdb9 100644 --- a/src/test/librbd/operation/test_mock_SnapshotRemoveRequest.cc +++ b/src/test/librbd/operation/test_mock_SnapshotRemoveRequest.cc @@ -36,13 +36,13 @@ public: return r; } - r = librbd::snap_create(ictx, snap_name); + r = snap_create(*ictx, snap_name); if (r < 0) { return r; } - r = librbd::snap_protect(ictx, snap_name); - if (r < 0) { + r = snap_protect(*ictx, snap_name); + if (r < 0) { return r; } close_image(ictx); @@ -119,7 +119,7 @@ public: TEST_F(TestMockOperationSnapshotRemoveRequest, Success) { librbd::ImageCtx *ictx; ASSERT_EQ(0, open_image(m_image_name, &ictx)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); ASSERT_EQ(0, ictx->state->refresh_if_required()); MockImageCtx mock_image_ctx(*ictx); @@ -169,10 +169,10 @@ TEST_F(TestMockOperationSnapshotRemoveRequest, FlattenedCloneRemovesChild) { librbd::ImageCtx *ictx; ASSERT_EQ(0, open_image(clone_name, &ictx)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); librbd::NoOpProgressContext prog_ctx; - ASSERT_EQ(0, librbd::flatten(ictx, prog_ctx)); + ASSERT_EQ(0, flatten(*ictx, prog_ctx)); ASSERT_EQ(0, ictx->state->refresh_if_required()); MockImageCtx mock_image_ctx(*ictx); @@ -213,7 +213,7 @@ TEST_F(TestMockOperationSnapshotRemoveRequest, ObjectMapSnapRemoveError) { librbd::ImageCtx *ictx; ASSERT_EQ(0, open_image(m_image_name, &ictx)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); ASSERT_EQ(0, ictx->state->refresh_if_required()); MockImageCtx mock_image_ctx(*ictx); @@ -242,7 +242,7 @@ TEST_F(TestMockOperationSnapshotRemoveRequest, ObjectMapSnapRemoveError) { TEST_F(TestMockOperationSnapshotRemoveRequest, RemoveChildParentError) { librbd::ImageCtx *ictx; ASSERT_EQ(0, open_image(m_image_name, &ictx)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); ASSERT_EQ(0, ictx->state->refresh_if_required()); MockImageCtx mock_image_ctx(*ictx); @@ -288,10 +288,10 @@ TEST_F(TestMockOperationSnapshotRemoveRequest, RemoveChildError) { return SUCCEED(); } - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); librbd::NoOpProgressContext prog_ctx; - ASSERT_EQ(0, librbd::flatten(ictx, prog_ctx)); + ASSERT_EQ(0, flatten(*ictx, prog_ctx)); ASSERT_EQ(0, ictx->state->refresh_if_required()); MockImageCtx mock_image_ctx(*ictx); @@ -321,7 +321,7 @@ TEST_F(TestMockOperationSnapshotRemoveRequest, RemoveChildError) { TEST_F(TestMockOperationSnapshotRemoveRequest, RemoveSnapError) { librbd::ImageCtx *ictx; ASSERT_EQ(0, open_image(m_image_name, &ictx)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); ASSERT_EQ(0, ictx->state->refresh_if_required()); MockImageCtx mock_image_ctx(*ictx); diff --git a/src/test/librbd/operation/test_mock_SnapshotUnprotectRequest.cc b/src/test/librbd/operation/test_mock_SnapshotUnprotectRequest.cc index 07cb296a41f2..4d437d0eae25 100644 --- a/src/test/librbd/operation/test_mock_SnapshotUnprotectRequest.cc +++ b/src/test/librbd/operation/test_mock_SnapshotUnprotectRequest.cc @@ -105,7 +105,7 @@ TEST_F(TestMockOperationSnapshotUnprotectRequest, Success) { librbd::ImageCtx *ictx; ASSERT_EQ(0, open_image(m_image_name, &ictx)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); ASSERT_EQ(0, ictx->state->refresh_if_required()); MockImageCtx mock_image_ctx(*ictx); @@ -138,7 +138,7 @@ TEST_F(TestMockOperationSnapshotUnprotectRequest, GetSnapIdMissing) { librbd::ImageCtx *ictx; ASSERT_EQ(0, open_image(m_image_name, &ictx)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); ASSERT_EQ(0, ictx->state->refresh_if_required()); MockImageCtx mock_image_ctx(*ictx); @@ -163,7 +163,7 @@ TEST_F(TestMockOperationSnapshotUnprotectRequest, IsSnapUnprotectedError) { librbd::ImageCtx *ictx; ASSERT_EQ(0, open_image(m_image_name, &ictx)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); ASSERT_EQ(0, ictx->state->refresh_if_required()); MockImageCtx mock_image_ctx(*ictx); @@ -189,7 +189,7 @@ TEST_F(TestMockOperationSnapshotUnprotectRequest, SnapAlreadyUnprotected) { librbd::ImageCtx *ictx; ASSERT_EQ(0, open_image(m_image_name, &ictx)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); ASSERT_EQ(0, ictx->state->refresh_if_required()); MockImageCtx mock_image_ctx(*ictx); @@ -215,7 +215,7 @@ TEST_F(TestMockOperationSnapshotUnprotectRequest, SetProtectionStatusError) { librbd::ImageCtx *ictx; ASSERT_EQ(0, open_image(m_image_name, &ictx)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); ASSERT_EQ(0, ictx->state->refresh_if_required()); MockImageCtx mock_image_ctx(*ictx); @@ -244,7 +244,7 @@ TEST_F(TestMockOperationSnapshotUnprotectRequest, ChildrenExist) { librbd::ImageCtx *ictx; ASSERT_EQ(0, open_image(m_image_name, &ictx)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); ASSERT_EQ(0, ictx->state->refresh_if_required()); MockImageCtx mock_image_ctx(*ictx); diff --git a/src/test/librbd/test_fixture.cc b/src/test/librbd/test_fixture.cc index 8c6a4b9e3925..8ed42998f954 100644 --- a/src/test/librbd/test_fixture.cc +++ b/src/test/librbd/test_fixture.cc @@ -7,6 +7,7 @@ #include "librbd/ExclusiveLock.h" #include "librbd/ImageState.h" #include "librbd/ImageWatcher.h" +#include "librbd/Operations.h" #include "cls/lock/cls_lock_client.h" #include "cls/lock/cls_lock_types.h" #include "librbd/internal.h" @@ -62,6 +63,21 @@ int TestFixture::open_image(const std::string &image_name, return (*ictx)->state->open(); } +int TestFixture::snap_create(librbd::ImageCtx &ictx, + const std::string &snap_name) { + return ictx.operations->snap_create(snap_name.c_str()); +} + +int TestFixture::snap_protect(librbd::ImageCtx &ictx, + const std::string &snap_name) { + return ictx.operations->snap_protect(snap_name.c_str()); +} + +int TestFixture::flatten(librbd::ImageCtx &ictx, + librbd::ProgressContext &prog_ctx) { + return ictx.operations->flatten(prog_ctx); +} + void TestFixture::close_image(librbd::ImageCtx *ictx) { m_ictxs.erase(ictx); diff --git a/src/test/librbd/test_fixture.h b/src/test/librbd/test_fixture.h index 5d6b86e85e7b..a6fa6af77b76 100644 --- a/src/test/librbd/test_fixture.h +++ b/src/test/librbd/test_fixture.h @@ -26,6 +26,11 @@ public: int open_image(const std::string &image_name, librbd::ImageCtx **ictx); void close_image(librbd::ImageCtx *ictx); + int snap_create(librbd::ImageCtx &ictx, const std::string &snap_name); + int snap_protect(librbd::ImageCtx &ictx, const std::string &snap_name); + + int flatten(librbd::ImageCtx &ictx, librbd::ProgressContext &prog_ctx); + int lock_image(librbd::ImageCtx &ictx, ClsLockType lock_type, const std::string &cookie); int unlock_image(); diff --git a/src/test/librbd/test_internal.cc b/src/test/librbd/test_internal.cc index 61d58beaf68d..a3fb09653072 100644 --- a/src/test/librbd/test_internal.cc +++ b/src/test/librbd/test_internal.cc @@ -9,6 +9,7 @@ #include "librbd/ImageWatcher.h" #include "librbd/internal.h" #include "librbd/ObjectMap.h" +#include "librbd/Operations.h" #include #include #include @@ -30,9 +31,9 @@ public: librbd::ImageCtx *ictx; EXPECT_EQ(0, open_image(m_image_name, &ictx)); if (iter->second) { - EXPECT_EQ(0, librbd::snap_unprotect(ictx, iter->first.c_str())); + EXPECT_EQ(0, ictx->operations->snap_unprotect(iter->first.c_str())); } - EXPECT_EQ(0, librbd::snap_remove(ictx, iter->first.c_str())); + EXPECT_EQ(0, ictx->operations->snap_remove(iter->first.c_str())); } TestFixture::TearDown(); @@ -45,14 +46,14 @@ public: return r; } - r = librbd::snap_create(ictx, snap_name); + r = snap_create(*ictx, snap_name); if (r < 0) { return r; } m_snaps.push_back(std::make_pair(snap_name, snap_protect)); if (snap_protect) { - r = librbd::snap_protect(ictx, snap_name); + r = ictx->operations->snap_protect(snap_name); if (r < 0) { return r; } @@ -97,7 +98,7 @@ TEST_F(TestInternal, ResizeLocksImage) { ASSERT_EQ(0, open_image(m_image_name, &ictx)); librbd::NoOpProgressContext no_op; - ASSERT_EQ(0, librbd::resize(ictx, m_image_size >> 1, no_op)); + ASSERT_EQ(0, ictx->operations->resize(m_image_size >> 1, no_op)); bool is_owner; ASSERT_EQ(0, librbd::is_exclusive_lock_owner(ictx, &is_owner)); @@ -112,7 +113,7 @@ TEST_F(TestInternal, ResizeFailsToLockImage) { ASSERT_EQ(0, lock_image(*ictx, LOCK_EXCLUSIVE, "manually locked")); librbd::NoOpProgressContext no_op; - ASSERT_EQ(-EROFS, librbd::resize(ictx, m_image_size >> 1, no_op)); + ASSERT_EQ(-EROFS, ictx->operations->resize(m_image_size >> 1, no_op)); } TEST_F(TestInternal, SnapCreateLocksImage) { @@ -121,9 +122,9 @@ TEST_F(TestInternal, SnapCreateLocksImage) { librbd::ImageCtx *ictx; ASSERT_EQ(0, open_image(m_image_name, &ictx)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); BOOST_SCOPE_EXIT( (ictx) ) { - ASSERT_EQ(0, librbd::snap_remove(ictx, "snap1")); + ASSERT_EQ(0, ictx->operations->snap_remove("snap1")); } BOOST_SCOPE_EXIT_END; bool is_owner; @@ -138,7 +139,7 @@ TEST_F(TestInternal, SnapCreateFailsToLockImage) { ASSERT_EQ(0, open_image(m_image_name, &ictx)); ASSERT_EQ(0, lock_image(*ictx, LOCK_EXCLUSIVE, "manually locked")); - ASSERT_EQ(-EROFS, librbd::snap_create(ictx, "snap1")); + ASSERT_EQ(-EROFS, snap_create(*ictx, "snap1")); } TEST_F(TestInternal, SnapRollbackLocksImage) { @@ -150,7 +151,7 @@ TEST_F(TestInternal, SnapRollbackLocksImage) { ASSERT_EQ(0, open_image(m_image_name, &ictx)); librbd::NoOpProgressContext no_op; - ASSERT_EQ(0, librbd::snap_rollback(ictx, "snap1", no_op)); + ASSERT_EQ(0, ictx->operations->snap_rollback("snap1", no_op)); bool is_owner; ASSERT_EQ(0, librbd::is_exclusive_lock_owner(ictx, &is_owner)); @@ -168,7 +169,7 @@ TEST_F(TestInternal, SnapRollbackFailsToLockImage) { ASSERT_EQ(0, lock_image(*ictx, LOCK_EXCLUSIVE, "manually locked")); librbd::NoOpProgressContext no_op; - ASSERT_EQ(-EROFS, librbd::snap_rollback(ictx, "snap1", no_op)); + ASSERT_EQ(-EROFS, ictx->operations->snap_rollback("snap1", no_op)); } TEST_F(TestInternal, SnapSetReleasesLock) { @@ -205,7 +206,7 @@ TEST_F(TestInternal, FlattenLocksImage) { ASSERT_EQ(0, open_image(clone_name, &ictx2)); librbd::NoOpProgressContext no_op; - ASSERT_EQ(0, librbd::flatten(ictx2, no_op)); + ASSERT_EQ(0, ictx2->operations->flatten(no_op)); bool is_owner; ASSERT_EQ(0, librbd::is_exclusive_lock_owner(ictx2, &is_owner)); @@ -243,7 +244,7 @@ TEST_F(TestInternal, FlattenFailsToLockImage) { ASSERT_EQ(0, lock_image(*ictx2, LOCK_EXCLUSIVE, "manually locked")); librbd::NoOpProgressContext no_op; - ASSERT_EQ(-EROFS, librbd::flatten(ictx2, no_op)); + ASSERT_EQ(-EROFS, ictx2->operations->flatten(no_op)); } TEST_F(TestInternal, AioWriteRequestsLock) { @@ -320,7 +321,7 @@ TEST_F(TestInternal, CancelAsyncResize) { size -= MIN(size, 1<<18); { RWLock::RLocker l(ictx->owner_lock); - librbd::async_resize(ictx, &ctx, size, prog_ctx); + ictx->operations->resize(size, prog_ctx, &ctx); } // try to interrupt the in-progress resize @@ -368,7 +369,7 @@ TEST_F(TestInternal, MultipleResize) { RWLock::RLocker l(ictx->owner_lock); contexts.push_back(new C_SaferCond()); - librbd::async_resize(ictx, contexts.back(), new_size, prog_ctx); + ictx->operations->resize(new_size, prog_ctx, contexts.back()); } for (uint32_t i = 0; i < contexts.size(); ++i) { @@ -478,8 +479,8 @@ TEST_F(TestInternal, SnapshotCopyup) bl.append(std::string(256, '1')); ASSERT_EQ(256, ictx->aio_work_queue->write(0, bl.length(), bl.c_str(), 0)); - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); - ASSERT_EQ(0, librbd::snap_protect(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); + ASSERT_EQ(0, ictx->operations->snap_protect("snap1")); uint64_t features; ASSERT_EQ(0, librbd::get_features(ictx, &features)); @@ -492,8 +493,8 @@ TEST_F(TestInternal, SnapshotCopyup) librbd::ImageCtx *ictx2; ASSERT_EQ(0, open_image(clone_name, &ictx2)); - ASSERT_EQ(0, librbd::snap_create(ictx2, "snap1")); - ASSERT_EQ(0, librbd::snap_create(ictx2, "snap2")); + ASSERT_EQ(0, snap_create(*ictx2, "snap1")); + ASSERT_EQ(0, snap_create(*ictx2, "snap2")); ASSERT_EQ(256, ictx2->aio_work_queue->write(256, bl.length(), bl.c_str(), 0)); @@ -576,8 +577,8 @@ TEST_F(TestInternal, ResizeCopyup) bl.c_str(), 0)); } - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); - ASSERT_EQ(0, librbd::snap_protect(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); + ASSERT_EQ(0, ictx->operations->snap_protect("snap1")); std::string clone_name = get_temp_image_name(); ASSERT_EQ(0, librbd::clone(m_ioctx, m_image_name.c_str(), "snap1", m_ioctx, @@ -586,7 +587,7 @@ TEST_F(TestInternal, ResizeCopyup) librbd::ImageCtx *ictx2; ASSERT_EQ(0, open_image(clone_name, &ictx2)); - ASSERT_EQ(0, librbd::snap_create(ictx2, "snap1")); + ASSERT_EQ(0, snap_create(*ictx2, "snap1")); bufferptr read_ptr(bl.length()); bufferlist read_bl; @@ -594,7 +595,7 @@ TEST_F(TestInternal, ResizeCopyup) // verify full / partial object removal properly copyup librbd::NoOpProgressContext no_op; - ASSERT_EQ(0, librbd::resize(ictx2, m_image_size - (1 << order) - 32, no_op)); + ASSERT_EQ(0, ictx2->operations->resize(m_image_size - (1 << order) - 32, no_op)); ASSERT_EQ(0, librbd::snap_set(ictx2, "snap1")); { @@ -633,8 +634,8 @@ TEST_F(TestInternal, DiscardCopyup) bl.c_str(), 0)); } - ASSERT_EQ(0, librbd::snap_create(ictx, "snap1")); - ASSERT_EQ(0, librbd::snap_protect(ictx, "snap1")); + ASSERT_EQ(0, snap_create(*ictx, "snap1")); + ASSERT_EQ(0, ictx->operations->snap_protect("snap1")); std::string clone_name = get_temp_image_name(); ASSERT_EQ(0, librbd::clone(m_ioctx, m_image_name.c_str(), "snap1", m_ioctx, @@ -643,7 +644,7 @@ TEST_F(TestInternal, DiscardCopyup) librbd::ImageCtx *ictx2; ASSERT_EQ(0, open_image(clone_name, &ictx2)); - ASSERT_EQ(0, librbd::snap_create(ictx2, "snap1")); + ASSERT_EQ(0, snap_create(*ictx2, "snap1")); bufferptr read_ptr(bl.length()); bufferlist read_bl; @@ -681,7 +682,7 @@ TEST_F(TestInternal, ShrinkFlushesCache) { ictx->aio_work_queue->aio_write(c, 0, buffer.size(), buffer.c_str(), 0); librbd::NoOpProgressContext no_op; - ASSERT_EQ(0, librbd::resize(ictx, m_image_size >> 1, no_op)); + ASSERT_EQ(0, ictx->operations->resize(m_image_size >> 1, no_op)); ASSERT_TRUE(c->is_complete()); ASSERT_EQ(0, c->wait_for_complete()); @@ -763,7 +764,7 @@ TEST_F(TestInternal, WriteFullCopyup) { ASSERT_EQ(0, open_image(m_image_name, &ictx)); librbd::NoOpProgressContext no_op; - ASSERT_EQ(0, librbd::resize(ictx, 1 << ictx->order, no_op)); + ASSERT_EQ(0, ictx->operations->resize(1 << ictx->order, no_op)); bufferlist bl; bl.append(std::string(1 << ictx->order, '1')); @@ -782,7 +783,7 @@ TEST_F(TestInternal, WriteFullCopyup) { librbd::ImageCtx *ictx2 = NULL; BOOST_SCOPE_EXIT( (&m_ioctx) (clone_name) (parent) (&ictx2) ) { if (ictx2 != NULL) { - librbd::snap_remove(ictx2, "snap1"); + ictx2->operations->snap_remove("snap1"); parent->close_image(ictx2); } @@ -791,7 +792,7 @@ TEST_F(TestInternal, WriteFullCopyup) { } BOOST_SCOPE_EXIT_END; ASSERT_EQ(0, open_image(clone_name, &ictx2)); - ASSERT_EQ(0, librbd::snap_create(ictx2, "snap1")); + ASSERT_EQ(0, ictx2->operations->snap_create("snap1")); bufferlist write_full_bl; write_full_bl.append(std::string(1 << ictx2->order, '2')); @@ -799,7 +800,7 @@ TEST_F(TestInternal, WriteFullCopyup) { ictx2->aio_work_queue->write(0, write_full_bl.length(), write_full_bl.c_str(), 0)); - ASSERT_EQ(0, librbd::flatten(ictx2, no_op)); + ASSERT_EQ(0, ictx2->operations->flatten(no_op)); bufferptr read_ptr(bl.length()); bufferlist read_bl;