using ::testing::InSequence;
using ::testing::Return;
using ::testing::SetArgPointee;
+using ::testing::StrEq;
using ::testing::WithArg;
static const std::string TEST_COOKIE("auto 123");
void expect_lock(MockImageCtx &mock_image_ctx, int r) {
EXPECT_CALL(get_mock_io_ctx(mock_image_ctx.md_ctx),
- exec(mock_image_ctx.header_oid, _, "lock", "lock", _, _, _))
+ exec(mock_image_ctx.header_oid, _, StrEq("lock"), StrEq("lock"), _, _, _))
.WillOnce(Return(r));
}
const std::string &lock_tag,
ClsLockType lock_type) {
auto &expect = EXPECT_CALL(get_mock_io_ctx(mock_image_ctx.md_ctx),
- exec(mock_image_ctx.header_oid, _, "lock",
- "get_info", _, _, _));
+ exec(mock_image_ctx.header_oid, _, StrEq("lock"),
+ StrEq("get_info"), _, _, _));
if (r < 0 && r != -ENOENT) {
expect.WillOnce(Return(r));
} else {
void expect_break_lock(MockImageCtx &mock_image_ctx, int r) {
EXPECT_CALL(get_mock_io_ctx(mock_image_ctx.md_ctx),
- exec(mock_image_ctx.header_oid, _, "lock", "break_lock", _, _, _))
+ exec(mock_image_ctx.header_oid, _, StrEq("lock"), StrEq("break_lock"), _, _, _))
.WillOnce(Return(r));
}
using ::testing::_;
using ::testing::InSequence;
using ::testing::Return;
+using ::testing::StrEq;
static const std::string TEST_COOKIE("auto 123");
void expect_unlock(MockImageCtx &mock_image_ctx, int r) {
EXPECT_CALL(get_mock_io_ctx(mock_image_ctx.md_ctx),
- exec(mock_image_ctx.header_oid, _, "lock", "unlock", _, _, _))
+ exec(mock_image_ctx.header_oid, _, StrEq("lock"), StrEq("unlock"), _, _, _))
.WillOnce(Return(r));
}
using ::testing::InSequence;
using ::testing::Return;
using ::testing::WithArg;
+using ::testing::StrEq;
class TestMockImageRefreshRequest : public TestMockFixture {
public:
void expect_v1_get_snapshots(MockRefreshImageCtx &mock_image_ctx, int r) {
auto &expect = EXPECT_CALL(get_mock_io_ctx(mock_image_ctx.md_ctx),
- exec(mock_image_ctx.header_oid, _, "rbd", "snap_list", _, _, _));
+ exec(mock_image_ctx.header_oid, _, StrEq("rbd"), StrEq("snap_list"), _, _, _));
if (r < 0) {
expect.WillOnce(Return(r));
} else {
void expect_v1_get_locks(MockRefreshImageCtx &mock_image_ctx, int r) {
auto &expect = EXPECT_CALL(get_mock_io_ctx(mock_image_ctx.md_ctx),
- exec(mock_image_ctx.header_oid, _, "lock", "get_info", _, _, _));
+ exec(mock_image_ctx.header_oid, _, StrEq("lock"), StrEq("get_info"), _, _, _));
if (r < 0) {
expect.WillOnce(Return(r));
} else {
void expect_get_mutable_metadata(MockRefreshImageCtx &mock_image_ctx, int r) {
auto &expect = EXPECT_CALL(get_mock_io_ctx(mock_image_ctx.md_ctx),
- exec(mock_image_ctx.header_oid, _, "rbd", "get_size", _, _, _));
+ exec(mock_image_ctx.header_oid, _, StrEq("rbd"), StrEq("get_size"), _, _, _));
if (r < 0) {
expect.WillOnce(Return(r));
} else {
expect.WillOnce(DoDefault());
EXPECT_CALL(get_mock_io_ctx(mock_image_ctx.md_ctx),
- exec(mock_image_ctx.header_oid, _, "rbd", "get_features", _, _, _))
+ exec(mock_image_ctx.header_oid, _, StrEq("rbd"), StrEq("get_features"), _, _, _))
.WillOnce(DoDefault());
EXPECT_CALL(get_mock_io_ctx(mock_image_ctx.md_ctx),
- exec(mock_image_ctx.header_oid, _, "rbd", "get_snapcontext", _, _, _))
+ exec(mock_image_ctx.header_oid, _, StrEq("rbd"), StrEq("get_snapcontext"), _, _, _))
.WillOnce(DoDefault());
EXPECT_CALL(get_mock_io_ctx(mock_image_ctx.md_ctx),
- exec(mock_image_ctx.header_oid, _, "rbd", "get_parent", _, _, _))
+ exec(mock_image_ctx.header_oid, _, StrEq("rbd"), StrEq("get_parent"), _, _, _))
.WillOnce(DoDefault());
EXPECT_CALL(get_mock_io_ctx(mock_image_ctx.md_ctx),
- exec(mock_image_ctx.header_oid, _, "lock", "get_info", _, _, _))
+ exec(mock_image_ctx.header_oid, _, StrEq("lock"), StrEq("get_info"), _, _, _))
.WillOnce(DoDefault());
}
}
void expect_get_flags(MockRefreshImageCtx &mock_image_ctx, int r) {
auto &expect = EXPECT_CALL(get_mock_io_ctx(mock_image_ctx.md_ctx),
- exec(mock_image_ctx.header_oid, _, "rbd", "get_flags", _, _, _));
+ exec(mock_image_ctx.header_oid, _, StrEq("rbd"), StrEq("get_flags"), _, _, _));
if (r < 0) {
expect.WillOnce(Return(r));
} else {
void expect_get_snapshots(MockRefreshImageCtx &mock_image_ctx, int r) {
auto &expect = EXPECT_CALL(get_mock_io_ctx(mock_image_ctx.md_ctx),
- exec(mock_image_ctx.header_oid, _, "rbd", "get_snapshot_name", _, _, _));
+ exec(mock_image_ctx.header_oid, _, StrEq("rbd"), StrEq("get_snapshot_name"), _, _, _));
if (r < 0) {
expect.WillOnce(Return(r));
} else {
expect.WillOnce(DoDefault());
EXPECT_CALL(get_mock_io_ctx(mock_image_ctx.md_ctx),
- exec(mock_image_ctx.header_oid, _, "rbd", "get_size", _, _, _))
+ exec(mock_image_ctx.header_oid, _, StrEq("rbd"), StrEq("get_size"), _, _, _))
.WillOnce(DoDefault());
EXPECT_CALL(get_mock_io_ctx(mock_image_ctx.md_ctx),
- exec(mock_image_ctx.header_oid, _, "rbd", "get_parent", _, _, _))
+ exec(mock_image_ctx.header_oid, _, StrEq("rbd"), StrEq("get_parent"), _, _, _))
.WillOnce(DoDefault());
EXPECT_CALL(get_mock_io_ctx(mock_image_ctx.md_ctx),
- exec(mock_image_ctx.header_oid, _, "rbd", "get_protection_status", _, _, _))
+ exec(mock_image_ctx.header_oid, _, StrEq("rbd"), StrEq("get_protection_status"), _, _, _))
.WillOnce(DoDefault());
}
}
using ::testing::_;
using ::testing::DoDefault;
using ::testing::Return;
+using ::testing::StrEq;
class TestMockObjectMapInvalidateRequest : public TestMockFixture {
public:
AsyncRequest<> *request = new InvalidateRequest<>(*ictx, CEPH_NOSNAP, false, &cond_ctx);
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
- exec(ictx->header_oid, _, "rbd", "set_flags", _, _, _))
+ exec(ictx->header_oid, _, StrEq("rbd"), StrEq("set_flags"), _, _, _))
.Times(0);
{
AsyncRequest<> *request = new InvalidateRequest<>(*ictx, CEPH_NOSNAP, false, &cond_ctx);
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
- exec(ictx->header_oid, _, "lock", "assert_locked", _, _, _))
+ exec(ictx->header_oid, _, StrEq("lock"), StrEq("assert_locked"), _, _, _))
.WillOnce(DoDefault());
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
- exec(ictx->header_oid, _, "rbd", "set_flags", _, _, _))
+ exec(ictx->header_oid, _, StrEq("rbd"), StrEq("set_flags"), _, _, _))
.WillOnce(DoDefault());
{
&cond_ctx);
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
- exec(ictx->header_oid, _, "lock", "assert_locked", _, _, _))
+ exec(ictx->header_oid, _, StrEq("lock"), StrEq("assert_locked"), _, _, _))
.Times(0);
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
- exec(ictx->header_oid, _, "rbd", "set_flags", _, _, _))
+ exec(ictx->header_oid, _, StrEq("rbd"), StrEq("set_flags"), _, _, _))
.WillOnce(DoDefault());
{
AsyncRequest<> *request = new InvalidateRequest<>(*ictx, CEPH_NOSNAP, false, &cond_ctx);
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
- exec(ictx->header_oid, _, "rbd", "set_flags", _, _, _))
+ exec(ictx->header_oid, _, StrEq("rbd"), StrEq("set_flags"), _, _, _))
.Times(0);
{
AsyncRequest<> *request = new InvalidateRequest<>(*ictx, CEPH_NOSNAP, false, &cond_ctx);
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
- exec(ictx->header_oid, _, "lock", "assert_locked", _, _, _))
+ exec(ictx->header_oid, _, StrEq("lock"), StrEq("assert_locked"), _, _, _))
.WillOnce(DoDefault());
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
- exec(ictx->header_oid, _, "rbd", "set_flags", _, _, _))
+ exec(ictx->header_oid, _, StrEq("rbd"), StrEq("set_flags"), _, _, _))
.WillOnce(Return(-EINVAL));
{
using ::testing::DoAll;
using ::testing::InSequence;
using ::testing::Return;
+using ::testing::StrEq;
using ::testing::WithArg;
class TestMockObjectMapLockRequest : public TestMockFixture {
void expect_lock(MockImageCtx &mock_image_ctx, int r) {
std::string oid(ObjectMap::object_map_name(mock_image_ctx.id, CEPH_NOSNAP));
EXPECT_CALL(get_mock_io_ctx(mock_image_ctx.md_ctx),
- exec(oid, _, "lock", "lock", _, _, _))
+ exec(oid, _, StrEq("lock"), StrEq("lock"), _, _, _))
.WillOnce(Return(r));
}
void expect_get_lock_info(MockImageCtx &mock_image_ctx, int r) {
std::string oid(ObjectMap::object_map_name(mock_image_ctx.id, CEPH_NOSNAP));
auto &expect = EXPECT_CALL(get_mock_io_ctx(mock_image_ctx.md_ctx),
- exec(oid, _, "lock", "get_info", _, _, _));
+ exec(oid, _, StrEq("lock"), StrEq("get_info"), _, _, _));
if (r < 0) {
expect.WillOnce(Return(r));
} else {
void expect_break_lock(MockImageCtx &mock_image_ctx, int r) {
std::string oid(ObjectMap::object_map_name(mock_image_ctx.id, CEPH_NOSNAP));
auto &expect = EXPECT_CALL(get_mock_io_ctx(mock_image_ctx.md_ctx),
- exec(oid, _, "lock", "break_lock", _, _, _));
+ exec(oid, _, StrEq("lock"), StrEq("break_lock"), _, _, _));
if (r < 0) {
expect.WillOnce(Return(r));
} else {
using ::testing::DoDefault;
using ::testing::InSequence;
using ::testing::Return;
+using ::testing::StrEq;
using ::testing::WithArg;
class TestMockObjectMapRefreshRequest : public TestMockFixture {
int r) {
std::string oid(ObjectMap::object_map_name(mock_image_ctx.id, snap_id));
auto &expect = EXPECT_CALL(get_mock_io_ctx(mock_image_ctx.md_ctx),
- exec(oid, _, "rbd", "object_map_load", _, _, _));
+ exec(oid, _, StrEq("rbd"), StrEq("object_map_load"), _, _, _));
if (r < 0) {
expect.WillOnce(Return(r));
} else {
uint64_t num_objects, int r) {
std::string oid(ObjectMap::object_map_name(mock_image_ctx.id, TEST_SNAP_ID));
auto &expect = EXPECT_CALL(get_mock_io_ctx(mock_image_ctx.md_ctx),
- exec(oid, _, "rbd", "object_map_resize", _, _, _));
+ exec(oid, _, StrEq("rbd"), StrEq("object_map_resize"), _, _, _));
expect.WillOnce(Return(r));
}
using ::testing::_;
using ::testing::DoDefault;
using ::testing::Return;
+using ::testing::StrEq;
class TestMockObjectMapResizeRequest : public TestMockFixture {
public:
std::string oid(ObjectMap::object_map_name(ictx->id, snap_id));
if (snap_id == CEPH_NOSNAP) {
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
- exec(oid, _, "lock", "assert_locked", _, _, _))
+ exec(oid, _, StrEq("lock"), StrEq("assert_locked"), _, _, _))
.WillOnce(DoDefault());
}
if (r < 0) {
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
- exec(oid, _, "rbd", "object_map_resize", _, _, _))
+ exec(oid, _, StrEq("rbd"), StrEq("object_map_resize"), _, _, _))
.WillOnce(Return(r));
} else {
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
- exec(oid, _, "rbd", "object_map_resize", _, _, _))
+ exec(oid, _, StrEq("rbd"), StrEq("object_map_resize"), _, _, _))
.WillOnce(DoDefault());
}
}
void expect_invalidate(librbd::ImageCtx *ictx) {
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
- exec(ictx->header_oid, _, "lock", "assert_locked", _, _, _)).Times(0);
+ exec(ictx->header_oid, _, StrEq("lock"), StrEq("assert_locked"), _, _, _)).Times(0);
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
- exec(ictx->header_oid, _, "rbd", "set_flags", _, _, _))
+ exec(ictx->header_oid, _, StrEq("rbd"), StrEq("set_flags"), _, _, _))
.WillOnce(DoDefault());
}
};
using ::testing::_;
using ::testing::DoDefault;
using ::testing::Return;
+using ::testing::StrEq;
class TestMockObjectMapSnapshotCreateRequest : public TestMockFixture {
public:
std::string oid(ObjectMap::object_map_name(ictx->id, CEPH_NOSNAP));
if (r < 0) {
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
- exec(oid, _, "lock", "assert_locked", _, _, _))
+ exec(oid, _, StrEq("lock"), StrEq("assert_locked"), _, _, _))
.WillOnce(Return(r));
} else {
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
- exec(oid, _, "lock", "assert_locked", _, _, _))
+ exec(oid, _, StrEq("lock"), StrEq("assert_locked"), _, _, _))
.WillOnce(DoDefault());
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
- exec(oid, _, "rbd", "object_map_snap_add", _, _, _))
+ exec(oid, _, StrEq("rbd"), StrEq("object_map_snap_add"), _, _, _))
.WillOnce(DoDefault());
}
}
void expect_invalidate(librbd::ImageCtx *ictx) {
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
- exec(ictx->header_oid, _, "rbd", "set_flags", _, _, _))
+ exec(ictx->header_oid, _, StrEq("rbd"), StrEq("set_flags"), _, _, _))
.WillOnce(DoDefault());
}
};
using ::testing::_;
using ::testing::DoDefault;
using ::testing::Return;
+using ::testing::StrEq;
class TestMockObjectMapSnapshotRemoveRequest : public TestMockFixture {
public:
std::string snap_oid(ObjectMap::object_map_name(ictx->id, snap_id));
if (r < 0) {
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
- exec(snap_oid, _, "rbd", "object_map_load", _, _, _))
+ exec(snap_oid, _, StrEq("rbd"), StrEq("object_map_load"), _, _, _))
.WillOnce(Return(r));
} else {
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
- exec(snap_oid, _, "rbd", "object_map_load", _, _, _))
+ exec(snap_oid, _, StrEq("rbd"), StrEq("object_map_load"), _, _, _))
.WillOnce(DoDefault());
}
}
std::string oid(ObjectMap::object_map_name(ictx->id, CEPH_NOSNAP));
if (r < 0) {
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
- exec(oid, _, "lock", "assert_locked", _, _, _))
+ exec(oid, _, StrEq("lock"), StrEq("assert_locked"), _, _, _))
.WillOnce(Return(r));
} else {
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
- exec(oid, _, "lock", "assert_locked", _, _, _))
+ exec(oid, _, StrEq("lock"), StrEq("assert_locked"), _, _, _))
.WillOnce(DoDefault());
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
- exec(oid, _, "rbd", "object_map_snap_remove", _, _, _))
+ exec(oid, _, StrEq("rbd"), StrEq("object_map_snap_remove"), _, _, _))
.WillOnce(DoDefault());
}
}
void expect_invalidate(librbd::ImageCtx *ictx) {
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
- exec(ictx->header_oid, _, "lock", "assert_locked", _, _, _))
+ exec(ictx->header_oid, _, StrEq("lock"), StrEq("assert_locked"), _, _, _))
.Times(0);
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
- exec(ictx->header_oid, _, "rbd", "set_flags", _, _, _))
+ exec(ictx->header_oid, _, StrEq("rbd"), StrEq("set_flags"), _, _, _))
.WillOnce(DoDefault());
}
};
using ::testing::_;
using ::testing::DoDefault;
using ::testing::Return;
+using ::testing::StrEq;
class TestMockObjectMapSnapshotRollbackRequest : public TestMockFixture {
public:
void expect_write_map(librbd::ImageCtx *ictx, int r) {
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
exec(ObjectMap::object_map_name(ictx->id, CEPH_NOSNAP), _,
- "lock", "assert_locked", _, _, _))
+ StrEq("lock"), StrEq("assert_locked"), _, _, _))
.WillOnce(DoDefault());
if (r < 0) {
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
void expect_invalidate(librbd::ImageCtx *ictx, uint32_t times) {
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
- exec(ictx->header_oid, _, "lock", "assert_locked", _, _, _))
+ exec(ictx->header_oid, _, StrEq("lock"), StrEq("assert_locked"), _, _, _))
.Times(0);
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
- exec(ictx->header_oid, _, "rbd", "set_flags", _, _, _))
+ exec(ictx->header_oid, _, StrEq("rbd"), StrEq("set_flags"), _, _, _))
.Times(times)
.WillRepeatedly(DoDefault());
}
using ::testing::_;
using ::testing::InSequence;
using ::testing::Return;
+using ::testing::StrEq;
class TestMockObjectMapUnlockRequest : public TestMockFixture {
public:
void expect_unlock(MockImageCtx &mock_image_ctx, int r) {
std::string oid(ObjectMap::object_map_name(mock_image_ctx.id, CEPH_NOSNAP));
EXPECT_CALL(get_mock_io_ctx(mock_image_ctx.md_ctx),
- exec(oid, _, "lock", "unlock", _, _, _))
+ exec(oid, _, StrEq("lock"), StrEq("unlock"), _, _, _))
.WillOnce(Return(r));
}
};
using ::testing::_;
using ::testing::DoDefault;
using ::testing::Return;
+using ::testing::StrEq;
class TestMockObjectMapUpdateRequest : public TestMockFixture {
public:
std::string oid(ObjectMap::object_map_name(ictx->id, snap_id));
if (snap_id == CEPH_NOSNAP) {
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
- exec(oid, _, "lock", "assert_locked", _, _, _))
+ exec(oid, _, StrEq("lock"), StrEq("assert_locked"), _, _, _))
.WillOnce(DoDefault());
}
if (r < 0) {
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
- exec(oid, _, "rbd", "object_map_update", _, _, _))
+ exec(oid, _, StrEq("rbd"), StrEq("object_map_update"), _, _, _))
.WillOnce(Return(r));
} else {
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
- exec(oid, _, "rbd", "object_map_update", _, _, _))
+ exec(oid, _, StrEq("rbd"), StrEq("object_map_update"), _, _, _))
.WillOnce(DoDefault());
}
}
void expect_invalidate(librbd::ImageCtx *ictx) {
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
- exec(ictx->header_oid, _, "lock", "assert_locked", _, _, _))
+ exec(ictx->header_oid, _, StrEq("lock"), StrEq("assert_locked"), _, _, _))
.Times(0);
EXPECT_CALL(get_mock_io_ctx(ictx->md_ctx),
- exec(ictx->header_oid, _, "rbd", "set_flags", _, _, _))
+ exec(ictx->header_oid, _, StrEq("rbd"), StrEq("set_flags"), _, _, _))
.WillOnce(DoDefault());
}
};
using ::testing::DoAll;
using ::testing::InSequence;
using ::testing::Return;
+using ::testing::StrEq;
using ::testing::WithArg;
class TestMockOperationResizeRequest : public TestMockFixture {
EXPECT_CALL(*mock_image_ctx.exclusive_lock, assert_header_locked(_));
}
EXPECT_CALL(get_mock_io_ctx(mock_image_ctx.md_ctx),
- exec(mock_image_ctx.header_oid, _, "rbd", "set_size", _, _, _))
+ exec(mock_image_ctx.header_oid, _, StrEq("rbd"), StrEq("set_size"), _, _, _))
.WillOnce(Return(r));
}
}
using ::testing::DoDefault;
using ::testing::Return;
using ::testing::SetArgPointee;
+using ::testing::StrEq;
using ::testing::WithArg;
class TestMockOperationSnapshotCreateRequest : public TestMockFixture {
}
auto &expect = EXPECT_CALL(get_mock_io_ctx(mock_image_ctx.md_ctx),
- exec(mock_image_ctx.header_oid, _, "rbd",
- mock_image_ctx.old_format ? "snap_add" :
- "snapshot_add",
+ exec(mock_image_ctx.header_oid, _, StrEq("rbd"),
+ StrEq(mock_image_ctx.old_format ? "snap_add" :
+ "snapshot_add"),
_, _, _));
if (r == -ESTALE) {
expect.WillOnce(Return(r)).WillOnce(DoDefault());
using ::testing::DoDefault;
using ::testing::Return;
using ::testing::SetArgPointee;
+using ::testing::StrEq;
using ::testing::WithArg;
class TestMockOperationSnapshotProtectRequest : public TestMockFixture {
void expect_set_protection_status(MockImageCtx &mock_image_ctx, int r) {
auto &expect = EXPECT_CALL(get_mock_io_ctx(mock_image_ctx.md_ctx),
- exec(mock_image_ctx.header_oid, _, "rbd",
- "set_protection_status", _, _, _));
+ exec(mock_image_ctx.header_oid, _, StrEq("rbd"),
+ StrEq("set_protection_status"), _, _, _));
if (r < 0) {
expect.WillOnce(Return(r));
} else {
using ::testing::DoDefault;
using ::testing::Return;
using ::testing::SetArgPointee;
+using ::testing::StrEq;
using ::testing::WithArg;
class TestMockOperationSnapshotRemoveRequest : public TestMockFixture {
void expect_remove_child(MockImageCtx &mock_image_ctx, int r) {
bool deep_flatten = mock_image_ctx.image_ctx->test_features(RBD_FEATURE_DEEP_FLATTEN);
auto &expect = EXPECT_CALL(get_mock_io_ctx(mock_image_ctx.md_ctx),
- exec(RBD_CHILDREN, _, "rbd", "remove_child",_,
+ exec(RBD_CHILDREN, _, StrEq("rbd"), StrEq("remove_child"), _,
_, _));
if (deep_flatten) {
expect.Times(0);
void expect_snap_remove(MockImageCtx &mock_image_ctx, int r) {
auto &expect = EXPECT_CALL(get_mock_io_ctx(mock_image_ctx.md_ctx),
- exec(mock_image_ctx.header_oid, _, "rbd",
- mock_image_ctx.old_format ? "snap_remove" :
- "snapshot_remove",
+ exec(mock_image_ctx.header_oid, _, StrEq("rbd"),
+ StrEq(mock_image_ctx.old_format ? "snap_remove" :
+ "snapshot_remove"),
_, _, _));
if (r < 0) {
expect.WillOnce(Return(r));
using ::testing::Return;
using ::testing::SetArgReferee;
using ::testing::SetArgPointee;
+using ::testing::StrEq;
using ::testing::WithArg;
class TestMockOperationSnapshotUnprotectRequest : public TestMockFixture {
::encode(status, bl);
auto &expect = EXPECT_CALL(get_mock_io_ctx(mock_image_ctx.md_ctx),
- exec(mock_image_ctx.header_oid, _, "rbd",
- "set_protection_status", ContentsEqual(bl),
+ exec(mock_image_ctx.header_oid, _, StrEq("rbd"),
+ StrEq("set_protection_status"), ContentsEqual(bl),
_, _));
if (r < 0) {
expect.WillOnce(Return(r));
::encode(children, bl);
auto &expect = EXPECT_CALL(get_mock_io_ctx(mock_image_ctx.md_ctx),
- exec(RBD_CHILDREN, _, "rbd", "get_children", _,
+ exec(RBD_CHILDREN, _, StrEq("rbd"), StrEq("get_children"), _,
_, _));
if (r < 0) {
expect.WillRepeatedly(Return(r));
using ::testing::_;
using ::testing::DoDefault;
using ::testing::Return;
+using ::testing::StrEq;
using ::testing::WithArg;
TestMockFixture::TestRadosClientPtr TestMockFixture::s_test_rados_client;
void TestMockFixture::expect_unlock_exclusive_lock(librbd::ImageCtx &ictx) {
EXPECT_CALL(get_mock_io_ctx(ictx.md_ctx),
- exec(_, _, "lock", "unlock", _, _, _))
+ exec(_, _, StrEq("lock"), StrEq("unlock"), _, _, _))
.WillRepeatedly(DoDefault());
}