]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
librados_test_stub: add support for reading object version
authorOr Ozeri <oro@il.ibm.com>
Thu, 24 Dec 2020 09:22:08 +0000 (11:22 +0200)
committerOr Ozeri <oro@il.ibm.com>
Thu, 24 Dec 2020 09:43:08 +0000 (11:43 +0200)
This commit implements a missing handling of librados_test_stub of objver reading

Signed-off-by: Or Ozeri <oro@il.ibm.com>
12 files changed:
src/test/librados_test_stub/LibradosTestStub.cc
src/test/librados_test_stub/MockTestMemIoCtxImpl.h
src/test/librados_test_stub/NeoradosTestStub.cc
src/test/librados_test_stub/TestIoCtxImpl.cc
src/test/librados_test_stub/TestIoCtxImpl.h
src/test/librados_test_stub/TestMemIoCtxImpl.cc
src/test/librados_test_stub/TestMemIoCtxImpl.h
src/test/librbd/image/test_mock_RefreshRequest.cc
src/test/librbd/image/test_mock_ValidatePoolRequest.cc
src/test/librbd/io/test_mock_ObjectRequest.cc
src/test/librbd/object_map/test_mock_SnapshotCreateRequest.cc
src/test/librbd/object_map/test_mock_SnapshotRollbackRequest.cc

index e91659f3c3f3d0f43e1c814fd27ad95ff87d4b44..c16cc436aa4a229f5fc6b76195e00be7d851768a 100644 (file)
@@ -431,7 +431,7 @@ int IoCtx::aio_operate(const std::string& oid, AioCompletion *c,
   TestIoCtxImpl *ctx = reinterpret_cast<TestIoCtxImpl*>(io_ctx_impl);
   TestObjectOperationImpl *ops = reinterpret_cast<TestObjectOperationImpl*>(op->impl);
   return ctx->aio_operate_read(oid, *ops, c->pc, flags, pbl,
-                               ctx->get_snap_read());
+                               ctx->get_snap_read(), nullptr);
 }
 
 int IoCtx::aio_operate(const std::string& oid, AioCompletion *c,
@@ -619,7 +619,7 @@ int IoCtx::read(const std::string& oid, bufferlist& bl, size_t len,
   TestIoCtxImpl *ctx = reinterpret_cast<TestIoCtxImpl*>(io_ctx_impl);
   return ctx->execute_operation(
     oid, std::bind(&TestIoCtxImpl::read, _1, _2, len, off, &bl,
-                     ctx->get_snap_read()));
+                     ctx->get_snap_read(), nullptr));
 }
 
 int IoCtx::remove(const std::string& oid) {
@@ -843,7 +843,7 @@ void ObjectOperation::cmpext(uint64_t off, const bufferlist& cmp_bl,
                                            cmp_bl, _4);
   if (prval != NULL) {
     op = std::bind(save_operation_result,
-                     std::bind(op, _1, _2, _3, _4, _5), prval);
+                     std::bind(op, _1, _2, _3, _4, _5, _6), prval);
   }
   o->ops.push_back(op);
 }
@@ -855,7 +855,7 @@ void ObjectReadOperation::list_snaps(snap_set_t *out_snaps, int *prval) {
                                            out_snaps);
   if (prval != NULL) {
     op = std::bind(save_operation_result,
-                     std::bind(op, _1, _2, _3, _4, _5), prval);
+                     std::bind(op, _1, _2, _3, _4, _5, _6), prval);
   }
   o->ops.push_back(op);
 }
@@ -868,7 +868,7 @@ void ObjectReadOperation::list_watchers(std::list<obj_watch_t> *out_watchers,
                                            _2, out_watchers);
   if (prval != NULL) {
     op = std::bind(save_operation_result,
-                     std::bind(op, _1, _2, _3, _4, _5), prval);
+                     std::bind(op, _1, _2, _3, _4, _5, _6), prval);
   }
   o->ops.push_back(op);
 }
@@ -879,14 +879,14 @@ void ObjectReadOperation::read(size_t off, uint64_t len, bufferlist *pbl,
 
   ObjectOperationTestImpl op;
   if (pbl != NULL) {
-    op = std::bind(&TestIoCtxImpl::read, _1, _2, len, off, pbl, _4);
+    op = std::bind(&TestIoCtxImpl::read, _1, _2, len, off, pbl, _4, nullptr);
   } else {
-    op = std::bind(&TestIoCtxImpl::read, _1, _2, len, off, _3, _4);
+    op = std::bind(&TestIoCtxImpl::read, _1, _2, len, off, _3, _4, nullptr);
   }
 
   if (prval != NULL) {
     op = std::bind(save_operation_result,
-                     std::bind(op, _1, _2, _3, _4, _5), prval);
+                     std::bind(op, _1, _2, _3, _4, _5, _6), prval);
   }
   o->ops.push_back(op);
 }
@@ -905,7 +905,7 @@ void ObjectReadOperation::sparse_read(uint64_t off, uint64_t len,
 
   if (prval != NULL) {
     op = std::bind(save_operation_result,
-                     std::bind(op, _1, _2, _3, _4, _5), prval);
+                     std::bind(op, _1, _2, _3, _4, _5, _6), prval);
   }
   o->ops.push_back(op);
 }
@@ -918,7 +918,7 @@ void ObjectReadOperation::stat(uint64_t *psize, time_t *pmtime, int *prval) {
 
   if (prval != NULL) {
     op = std::bind(save_operation_result,
-                     std::bind(op, _1, _2, _3, _4, _5), prval);
+                     std::bind(op, _1, _2, _3, _4, _5, _6), prval);
   }
   o->ops.push_back(op);
 }
@@ -1381,7 +1381,8 @@ int cls_cxx_read2(cls_method_context_t hctx, int ofs, int len,
                   bufferlist *outbl, uint32_t op_flags) {
   librados::TestClassHandler::MethodContext *ctx =
     reinterpret_cast<librados::TestClassHandler::MethodContext*>(hctx);
-  return ctx->io_ctx_impl->read(ctx->oid, len, ofs, outbl, ctx->snap_id);
+  return ctx->io_ctx_impl->read(
+          ctx->oid, len, ofs, outbl, ctx->snap_id, nullptr);
 }
 
 int cls_cxx_setxattr(cls_method_context_t hctx, const char *name,
index 4ea625eac08fa9a8be4906a2140211512d91026b..7937e221ad7d49247ddff5030419ec7db8648247 100644 (file)
@@ -140,13 +140,13 @@ public:
      return TestMemIoCtxImpl::sparse_read(oid, off, len, m, bl, snap_id);
   }
 
-  MOCK_METHOD5(read, int(const std::string& oid,
+  MOCK_METHOD6(read, int(const std::string& oid,
                          size_t len,
                          uint64_t off,
-                         bufferlist *bl, uint64_t snap_id));
+                         bufferlist *bl, uint64_t snap_id, uint64_t* objver));
   int do_read(const std::string& oid, size_t len, uint64_t off,
-              bufferlist *bl, uint64_t snap_id) {
-    return TestMemIoCtxImpl::read(oid, len, off, bl, snap_id);
+              bufferlist *bl, uint64_t snap_id, uint64_t* objver) {
+    return TestMemIoCtxImpl::read(oid, len, off, bl, snap_id, objver);
   }
 
   MOCK_METHOD2(remove, int(const std::string& oid, const SnapContext &snapc));
@@ -226,7 +226,7 @@ public:
     ON_CALL(*this, list_snaps(_, _)).WillByDefault(Invoke(this, &MockTestMemIoCtxImpl::do_list_snaps));
     ON_CALL(*this, list_watchers(_, _)).WillByDefault(Invoke(this, &MockTestMemIoCtxImpl::do_list_watchers));
     ON_CALL(*this, notify(_, _, _, _)).WillByDefault(Invoke(this, &MockTestMemIoCtxImpl::do_notify));
-    ON_CALL(*this, read(_, _, _, _, _)).WillByDefault(Invoke(this, &MockTestMemIoCtxImpl::do_read));
+    ON_CALL(*this, read(_, _, _, _, _, _)).WillByDefault(Invoke(this, &MockTestMemIoCtxImpl::do_read));
     ON_CALL(*this, set_snap_read(_)).WillByDefault(Invoke(this, &MockTestMemIoCtxImpl::do_set_snap_read));
     ON_CALL(*this, sparse_read(_, _, _, _, _, _)).WillByDefault(Invoke(this, &MockTestMemIoCtxImpl::do_sparse_read));
     ON_CALL(*this, remove(_, _)).WillByDefault(Invoke(this, &MockTestMemIoCtxImpl::do_remove));
index c91a0aad4edc8410390ae1af88e1bb1f6a1609a5..03d729466b6e575bc75c007c41b1a37f7a686a1a 100644 (file)
@@ -268,7 +268,7 @@ void Op::cmpext(uint64_t off, ceph::buffer::list&& cmp_bl, std::size_t* s) {
     &librados::TestIoCtxImpl::cmpext, _1, _2, off, cmp_bl, _4);
   if (s != nullptr) {
     op = std::bind(
-      save_operation_size, std::bind(op, _1, _2, _3, _4, _5), s);
+      save_operation_size, std::bind(op, _1, _2, _3, _4, _5, _6), s);
   }
   o->ops.push_back(op);
 }
@@ -316,7 +316,7 @@ void Op::exec(std::string_view cls, std::string_view method,
   librados::ObjectOperationTestImpl op =
     [cls_handler, cls, method, inbl = const_cast<bufferlist&>(inbl), out]
     (librados::TestIoCtxImpl* io_ctx, const std::string& oid, bufferlist* outbl,
-     uint64_t snap_id, const SnapContext& snapc) mutable -> int {
+     uint64_t snap_id, const SnapContext& snapc, uint64_t*) mutable -> int {
       return io_ctx->exec(
         oid, cls_handler, std::string(cls).c_str(),
         std::string(method).c_str(), inbl,
@@ -324,7 +324,7 @@ void Op::exec(std::string_view cls, std::string_view method,
     };
   if (ec != nullptr) {
     op = std::bind(
-      save_operation_ec, std::bind(op, _1, _2, _3, _4, _5), ec);
+      save_operation_ec, std::bind(op, _1, _2, _3, _4, _5, _6), ec);
   }
   o->ops.push_back(op);
 }
@@ -338,14 +338,14 @@ void Op::exec(std::string_view cls, std::string_view method,
   librados::ObjectOperationTestImpl op =
     [cls_handler, cls, method, inbl = const_cast<bufferlist&>(inbl)]
     (librados::TestIoCtxImpl* io_ctx, const std::string& oid, bufferlist* outbl,
-     uint64_t snap_id, const SnapContext& snapc) mutable -> int {
+     uint64_t snap_id, const SnapContext& snapc, uint64_t*) mutable -> int {
       return io_ctx->exec(
         oid, cls_handler, std::string(cls).c_str(),
         std::string(method).c_str(), inbl, outbl, snap_id, snapc);
     };
   if (ec != NULL) {
     op = std::bind(
-      save_operation_ec, std::bind(op, _1, _2, _3, _4, _5), ec);
+      save_operation_ec, std::bind(op, _1, _2, _3, _4, _5, _6), ec);
   }
   o->ops.push_back(op);
 }
@@ -355,14 +355,16 @@ void ReadOp::read(size_t off, uint64_t len, ceph::buffer::list* out,
   auto o = *reinterpret_cast<librados::TestObjectOperationImpl**>(&impl);
   librados::ObjectOperationTestImpl op;
   if (out != nullptr) {
-    op = std::bind(&librados::TestIoCtxImpl::read, _1, _2, len, off, out, _4);
+    op = std::bind(
+            &librados::TestIoCtxImpl::read, _1, _2, len, off, out, _4, _6);
   } else {
-    op = std::bind(&librados::TestIoCtxImpl::read, _1, _2, len, off, _3, _4);
+    op = std::bind(
+            &librados::TestIoCtxImpl::read, _1, _2, len, off, _3, _4, _6);
   }
 
   if (ec != NULL) {
     op = std::bind(
-      save_operation_ec, std::bind(op, _1, _2, _3, _4, _5), ec);
+      save_operation_ec, std::bind(op, _1, _2, _3, _4, _5, _6), ec);
   }
   o->ops.push_back(op);
 }
@@ -376,7 +378,7 @@ void ReadOp::sparse_read(uint64_t off, uint64_t len,
   librados::ObjectOperationTestImpl op =
     [off, len, out, extents]
     (librados::TestIoCtxImpl* io_ctx, const std::string& oid, bufferlist* outbl,
-     uint64_t snap_id, const SnapContext& snapc) mutable -> int {
+     uint64_t snap_id, const SnapContext& snapc, uint64_t*) mutable -> int {
       std::map<uint64_t,uint64_t> m;
       int r = io_ctx->sparse_read(
         oid, off, len, &m, (out != nullptr ? out : outbl), snap_id);
@@ -388,7 +390,7 @@ void ReadOp::sparse_read(uint64_t off, uint64_t len,
     };
   if (ec != NULL) {
     op = std::bind(save_operation_ec,
-                     std::bind(op, _1, _2, _3, _4, _5), ec);
+                     std::bind(op, _1, _2, _3, _4, _5, _6), ec);
   }
   o->ops.push_back(op);
 }
@@ -398,7 +400,7 @@ void ReadOp::list_snaps(SnapSet* snaps, bs::error_code* ec) {
   librados::ObjectOperationTestImpl op =
     [snaps]
     (librados::TestIoCtxImpl* io_ctx, const std::string& oid, bufferlist*,
-     uint64_t, const SnapContext&) mutable -> int {
+     uint64_t, const SnapContext&, uint64_t*) mutable -> int {
       librados::snap_set_t snap_set;
       int r = io_ctx->list_snaps(oid, &snap_set);
       if (r >= 0 && snaps != nullptr) {
@@ -418,7 +420,7 @@ void ReadOp::list_snaps(SnapSet* snaps, bs::error_code* ec) {
     };
   if (ec != NULL) {
     op = std::bind(save_operation_ec,
-                   std::bind(op, _1, _2, _3, _4, _5), ec);
+                   std::bind(op, _1, _2, _3, _4, _5, _6), ec);
   }
   o->ops.push_back(op);
 }
@@ -519,7 +521,7 @@ void RADOS::execute(const Object& o, const IOContext& ioc, ReadOp&& op,
 
   auto completion = create_aio_completion(std::move(c));
   auto r = io_ctx->aio_operate_read(std::string{o}, *ops, completion, 0U, bl,
-                                    snap_id);
+                                    snap_id, objver);
   ceph_assert(r == 0);
 }
 
index acaf8ea78c4a035b130a713a6b0a93047b2e36f7..73bc8d4a885364030b774dafc99c50ac9c06c003 100644 (file)
@@ -112,20 +112,21 @@ int TestIoCtxImpl::aio_operate(const std::string& oid, TestObjectOperationImpl &
   m_client->add_aio_operation(oid, true, std::bind(
     &TestIoCtxImpl::execute_aio_operations, this, oid, &ops,
     reinterpret_cast<bufferlist*>(0), m_snap_seq,
-    snap_context != NULL ? *snap_context : m_snapc), c);
+    snap_context != NULL ? *snap_context : m_snapc, nullptr), c);
   return 0;
 }
 
 int TestIoCtxImpl::aio_operate_read(const std::string& oid,
                                     TestObjectOperationImpl &ops,
                                     AioCompletionImpl *c, int flags,
-                                    bufferlist *pbl, uint64_t snap_id) {
+                                    bufferlist *pbl, uint64_t snap_id,
+                                    uint64_t* objver) {
   // TODO ignoring flags for now
   ops.get();
   m_pending_ops++;
   m_client->add_aio_operation(oid, true, std::bind(
     &TestIoCtxImpl::execute_aio_operations, this, oid, &ops, pbl, snap_id,
-    m_snapc), c);
+    m_snapc, objver), c);
   return 0;
 }
 
@@ -211,7 +212,7 @@ int TestIoCtxImpl::operate(const std::string& oid,
   m_pending_ops++;
   m_client->add_aio_operation(oid, false, std::bind(
     &TestIoCtxImpl::execute_aio_operations, this, oid, &ops,
-    reinterpret_cast<bufferlist*>(0), m_snap_seq, m_snapc), comp);
+    reinterpret_cast<bufferlist*>(0), m_snap_seq, m_snapc, nullptr), comp);
 
   comp->wait_for_complete();
   int ret = comp->get_return_value();
@@ -228,7 +229,7 @@ int TestIoCtxImpl::operate_read(const std::string& oid,
   m_pending_ops++;
   m_client->add_aio_operation(oid, false, std::bind(
     &TestIoCtxImpl::execute_aio_operations, this, oid, &ops, pbl,
-    m_snap_seq, m_snapc), comp);
+    m_snap_seq, m_snapc, nullptr), comp);
 
   comp->wait_for_complete();
   int ret = comp->get_return_value();
@@ -291,7 +292,7 @@ int TestIoCtxImpl::tmap_update(const std::string& oid, bufferlist& cmdbl) {
 
   if (size > 0) {
     bufferlist inbl;
-    r = read(oid, size, 0, &inbl, CEPH_NOSNAP);
+    r = read(oid, size, 0, &inbl, CEPH_NOSNAP, nullptr);
     if (r < 0) {
       return r;
     }
@@ -362,7 +363,8 @@ int TestIoCtxImpl::execute_operation(const std::string& oid,
 int TestIoCtxImpl::execute_aio_operations(const std::string& oid,
                                           TestObjectOperationImpl *ops,
                                           bufferlist *pbl, uint64_t snap_id,
-                                          const SnapContext &snapc) {
+                                          const SnapContext &snapc,
+                                          uint64_t* objver) {
   int ret = 0;
   if (m_client->is_blocklisted()) {
     ret = -EBLOCKLISTED;
@@ -370,7 +372,7 @@ int TestIoCtxImpl::execute_aio_operations(const std::string& oid,
     TestRadosClient::Transaction transaction(m_client, get_namespace(), oid);
     for (ObjectOperations::iterator it = ops->ops.begin();
          it != ops->ops.end(); ++it) {
-      ret = (*it)(this, oid, pbl, snap_id, snapc);
+      ret = (*it)(this, oid, pbl, snap_id, snapc, objver);
       if (ret < 0) {
         break;
       }
index 2ebc42edd7920d95b6894ed097283e4046c7e8ba..3c6ff590da628a607b1c63d4ef56e005a476ac19 100644 (file)
@@ -22,8 +22,9 @@ class TestRadosClient;
 typedef boost::function<int(TestIoCtxImpl*,
                            const std::string&,
                            bufferlist *,
-                            uint64_t,
-                            const SnapContext &)> ObjectOperationTestImpl;
+          uint64_t,
+          const SnapContext &,
+          uint64_t*)> ObjectOperationTestImpl;
 typedef std::list<ObjectOperationTestImpl> ObjectOperations;
 
 struct TestObjectOperationImpl {
@@ -90,7 +91,8 @@ public:
                           int flags);
   virtual int aio_operate_read(const std::string& oid, TestObjectOperationImpl &ops,
                                AioCompletionImpl *c, int flags,
-                               bufferlist *pbl, uint64_t snap_id);
+                               bufferlist *pbl, uint64_t snap_id,
+                               uint64_t* objver);
   virtual int aio_remove(const std::string& oid, AioCompletionImpl *c,
                          int flags = 0) = 0;
   virtual int aio_watch(const std::string& o, AioCompletionImpl *c,
@@ -133,7 +135,7 @@ public:
   virtual int operate_read(const std::string& oid, TestObjectOperationImpl &ops,
                            bufferlist *pbl);
   virtual int read(const std::string& oid, size_t len, uint64_t off,
-                   bufferlist *bl, uint64_t snap_id) = 0;
+                   bufferlist *bl, uint64_t snap_id, uint64_t* objver) = 0;
   virtual int remove(const std::string& oid, const SnapContext &snapc) = 0;
   virtual int selfmanaged_snap_create(uint64_t *snapid) = 0;
   virtual void aio_selfmanaged_snap_create(uint64_t *snapid,
@@ -186,7 +188,8 @@ protected:
   int execute_aio_operations(const std::string& oid,
                              TestObjectOperationImpl *ops,
                              bufferlist *pbl, uint64_t,
-                             const SnapContext &snapc);
+                             const SnapContext &snapc,
+                             uint64_t* objver);
 
 private:
   struct C_AioNotify : public Context {
index 6ad3ce3861a38af19d681b43127889a61e60ad68..687abb16d40b9047e38d25c5580795c17b29e8ee 100644 (file)
@@ -356,7 +356,8 @@ int TestMemIoCtxImpl::omap_set(const std::string& oid,
 }
 
 int TestMemIoCtxImpl::read(const std::string& oid, size_t len, uint64_t off,
-                           bufferlist *bl, uint64_t snap_id) {
+                           bufferlist *bl, uint64_t snap_id,
+                           uint64_t* objver) {
   if (m_client->is_blocklisted()) {
     return -EBLOCKLISTED;
   }
@@ -380,6 +381,9 @@ int TestMemIoCtxImpl::read(const std::string& oid, size_t len, uint64_t off,
     bit.substr_of(file->data, off, len);
     append_clone(bit, bl);
   }
+  if (objver != nullptr) {
+    *objver = file->objver;
+  }
   return len;
 }
 
index 9b9042262362fcb25427b4f84714c3dbce48c51b..4706f46d218be0a9f16e90a68bd8b8c50d3f6280 100644 (file)
@@ -48,7 +48,7 @@ public:
   int omap_set(const std::string& oid, const std::map<std::string,
                bufferlist> &map) override;
   int read(const std::string& oid, size_t len, uint64_t off,
-           bufferlist *bl, uint64_t snap_id) override;
+           bufferlist *bl, uint64_t snap_id, uint64_t* objver) override;
   int remove(const std::string& oid, const SnapContext &snapc) override;
   int selfmanaged_snap_create(uint64_t *snapid) override;
   int selfmanaged_snap_remove(uint64_t snapid) override;
index 2912237c16622e61ed731f6faf569042a4892444..96b8fe306737b5ae4dfe174c268d4c4c81c4cf5a 100644 (file)
@@ -168,7 +168,7 @@ public:
 
   void expect_v1_read_header(MockRefreshImageCtx &mock_image_ctx, int r) {
     auto &expect = EXPECT_CALL(get_mock_io_ctx(mock_image_ctx.md_ctx),
-                               read(mock_image_ctx.header_oid, _, _, _, _));
+                               read(mock_image_ctx.header_oid, _, _, _, _, _));
     if (r < 0) {
       expect.WillOnce(Return(r));
     } else {
index 95e4028ec964fa726c8ca681d4a18dc84e7bebe5..65460eab785da1d7653cd90ed99aaebeaa0f8324 100644 (file)
@@ -53,7 +53,8 @@ public:
 
   void expect_read_rbd_info(librados::MockTestMemIoCtxImpl &mock_io_ctx,
                             const std::string& data, int r) {
-    auto& expect = EXPECT_CALL(mock_io_ctx, read(StrEq(RBD_INFO), 0, 0, _, _));
+    auto& expect = EXPECT_CALL(
+            mock_io_ctx, read(StrEq(RBD_INFO), 0, 0, _, _, _));
     if (r < 0) {
       expect.WillOnce(Return(r));
     } else {
index 5a451bcfbc51017e42509ae6e5a0120b435ac5da..18069b9c99d1a9bc6508fdc32effe69e49778f8f 100644 (file)
@@ -215,7 +215,7 @@ struct TestMockIoObjectRequest : public TestMockFixture {
 
     auto& mock_io_ctx = librados::get_mock_io_ctx(
       mock_image_ctx.rados_api, *mock_image_ctx.get_data_io_context());
-    auto& expect = EXPECT_CALL(mock_io_ctx, read(oid, len, off, _, _));
+    auto& expect = EXPECT_CALL(mock_io_ctx, read(oid, len, off, _, _, _));
     if (r < 0) {
       expect.WillOnce(Return(r));
     } else {
index b49f7419d5dc318f2aad9cf23450fc60d2dfe335..7f77aaf839f250a04d37c5f9973bbada4fac3fea 100644 (file)
@@ -33,11 +33,11 @@ public:
     if (r < 0) {
       EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
                   read(ObjectMap<>::object_map_name(ictx->id, CEPH_NOSNAP),
-                       0, 0, _, _)).WillOnce(Return(r));
+                       0, 0, _, _, _)).WillOnce(Return(r));
     } else {
       EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
                   read(ObjectMap<>::object_map_name(ictx->id, CEPH_NOSNAP),
-                       0, 0, _, _)).WillOnce(DoDefault());
+                       0, 0, _, _, _)).WillOnce(DoDefault());
     }
   }
 
index 96636ab14d02566c480eb750235e368e50b95785..7b89a0996c11d7059d990ca476cf87b68323eb07 100644 (file)
@@ -25,11 +25,11 @@ public:
     if (r < 0) {
       EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
                   read(ObjectMap<>::object_map_name(ictx->id, snap_id),
-                       0, 0, _, _)).WillOnce(Return(r));
+                       0, 0, _, _, _)).WillOnce(Return(r));
     } else {
       EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
                   read(ObjectMap<>::object_map_name(ictx->id, snap_id),
-                       0, 0, _, _)).WillOnce(DoDefault());
+                       0, 0, _, _, _)).WillOnce(DoDefault());
     }
   }