X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Ftest%2Frbd_mirror%2Fimage_replayer%2Ftest_mock_PrepareRemoteImageRequest.cc;fp=src%2Fceph%2Fsrc%2Ftest%2Frbd_mirror%2Fimage_replayer%2Ftest_mock_PrepareRemoteImageRequest.cc;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=793811816e62d20421814640ccd7e6421cc624d6;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/test/rbd_mirror/image_replayer/test_mock_PrepareRemoteImageRequest.cc b/src/ceph/src/test/rbd_mirror/image_replayer/test_mock_PrepareRemoteImageRequest.cc deleted file mode 100644 index 7938118..0000000 --- a/src/ceph/src/test/rbd_mirror/image_replayer/test_mock_PrepareRemoteImageRequest.cc +++ /dev/null @@ -1,163 +0,0 @@ -// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- -// vim: ts=8 sw=2 smarttab - -#include "test/rbd_mirror/test_mock_fixture.h" -#include "cls/rbd/cls_rbd_types.h" -#include "librbd/journal/TypeTraits.h" -#include "tools/rbd_mirror/image_replayer/GetMirrorImageIdRequest.h" -#include "tools/rbd_mirror/image_replayer/PrepareRemoteImageRequest.h" -#include "test/librados_test_stub/MockTestMemIoCtxImpl.h" -#include "test/librbd/mock/MockImageCtx.h" - -namespace librbd { - -namespace { - -struct MockTestImageCtx : public librbd::MockImageCtx { - MockTestImageCtx(librbd::ImageCtx &image_ctx) - : librbd::MockImageCtx(image_ctx) { - } -}; - -} // anonymous namespace -} // namespace librbd - -namespace rbd { -namespace mirror { -namespace image_replayer { - -template <> -struct GetMirrorImageIdRequest { - static GetMirrorImageIdRequest* s_instance; - std::string* image_id = nullptr; - Context* on_finish = nullptr; - - static GetMirrorImageIdRequest* create(librados::IoCtx& io_ctx, - const std::string& global_image_id, - std::string* image_id, - Context* on_finish) { - assert(s_instance != nullptr); - s_instance->image_id = image_id; - s_instance->on_finish = on_finish; - return s_instance; - } - - GetMirrorImageIdRequest() { - s_instance = this; - } - - MOCK_METHOD0(send, void()); -}; - -GetMirrorImageIdRequest* GetMirrorImageIdRequest::s_instance = nullptr; - -} // namespace image_replayer -} // namespace mirror -} // namespace rbd - -// template definitions -#include "tools/rbd_mirror/image_replayer/PrepareRemoteImageRequest.cc" - -namespace rbd { -namespace mirror { -namespace image_replayer { - -using ::testing::_; -using ::testing::DoAll; -using ::testing::InSequence; -using ::testing::Invoke; -using ::testing::Return; -using ::testing::StrEq; -using ::testing::WithArg; - -class TestMockImageReplayerPrepareRemoteImageRequest : public TestMockFixture { -public: - typedef PrepareRemoteImageRequest MockPrepareRemoteImageRequest; - typedef GetMirrorImageIdRequest MockGetMirrorImageIdRequest; - - void expect_get_mirror_image_id(MockGetMirrorImageIdRequest& mock_get_mirror_image_id_request, - const std::string& image_id, int r) { - EXPECT_CALL(mock_get_mirror_image_id_request, send()) - .WillOnce(Invoke([&mock_get_mirror_image_id_request, image_id, r]() { - *mock_get_mirror_image_id_request.image_id = image_id; - mock_get_mirror_image_id_request.on_finish->complete(r); - })); - } - - void expect_mirror_uuid_get(librados::IoCtx &io_ctx, - const std::string &mirror_uuid, int r) { - bufferlist bl; - ::encode(mirror_uuid, bl); - - EXPECT_CALL(get_mock_io_ctx(io_ctx), - exec(RBD_MIRRORING, _, StrEq("rbd"), StrEq("mirror_uuid_get"), _, _, _)) - .WillOnce(DoAll(WithArg<5>(Invoke([bl](bufferlist *out_bl) { - *out_bl = bl; - })), - Return(r))); - } -}; - -TEST_F(TestMockImageReplayerPrepareRemoteImageRequest, Success) { - InSequence seq; - expect_mirror_uuid_get(m_remote_io_ctx, "remote mirror uuid", 0); - MockGetMirrorImageIdRequest mock_get_mirror_image_id_request; - expect_get_mirror_image_id(mock_get_mirror_image_id_request, - "remote image id", 0); - - std::string remote_mirror_uuid; - std::string remote_image_id; - C_SaferCond ctx; - auto req = MockPrepareRemoteImageRequest::create(m_remote_io_ctx, - "global image id", - &remote_mirror_uuid, - &remote_image_id, - &ctx); - req->send(); - - ASSERT_EQ(0, ctx.wait()); - ASSERT_EQ(std::string("remote mirror uuid"), remote_mirror_uuid); - ASSERT_EQ(std::string("remote image id"), remote_image_id); -} - -TEST_F(TestMockImageReplayerPrepareRemoteImageRequest, MirrorUuidError) { - InSequence seq; - expect_mirror_uuid_get(m_remote_io_ctx, "", -EINVAL); - - std::string remote_mirror_uuid; - std::string remote_image_id; - C_SaferCond ctx; - auto req = MockPrepareRemoteImageRequest::create(m_remote_io_ctx, - "global image id", - &remote_mirror_uuid, - &remote_image_id, - &ctx); - req->send(); - - ASSERT_EQ(-EINVAL, ctx.wait()); - ASSERT_EQ(std::string(""), remote_mirror_uuid); -} - -TEST_F(TestMockImageReplayerPrepareRemoteImageRequest, MirrorImageIdError) { - InSequence seq; - expect_mirror_uuid_get(m_remote_io_ctx, "remote mirror uuid", 0); - MockGetMirrorImageIdRequest mock_get_mirror_image_id_request; - expect_get_mirror_image_id(mock_get_mirror_image_id_request, "", -EINVAL); - - std::string remote_mirror_uuid; - std::string remote_image_id; - C_SaferCond ctx; - auto req = MockPrepareRemoteImageRequest::create(m_remote_io_ctx, - "global image id", - &remote_mirror_uuid, - &remote_image_id, - &ctx); - req->send(); - - ASSERT_EQ(-EINVAL, ctx.wait()); - ASSERT_EQ(std::string("remote mirror uuid"), remote_mirror_uuid); -} - -} // namespace image_replayer -} // namespace mirror -} // namespace rbd