}));
}
+ void expect_test_op_features(librbd::MockTestImageCtx& mock_image_ctx,
+ bool enabled) {
+ EXPECT_CALL(mock_image_ctx,
+ test_op_features(RBD_OPERATION_FEATURE_CLONE_CHILD))
+ .WillOnce(Return(enabled));
+ }
+
void expect_clone_image(MockCloneRequest &mock_clone_request,
int r) {
EXPECT_CALL(mock_clone_request, construct());
expect_open_image(mock_open_image_request, m_remote_io_ctx,
m_remote_image_ctx->id, mock_remote_parent_image_ctx, 0);
+ expect_test_op_features(mock_remote_clone_image_ctx, false);
expect_clone_image(mock_clone_request, 0);
expect_close_image(mock_close_image_request, mock_remote_parent_image_ctx, 0);
expect_open_image(mock_open_image_request, m_remote_io_ctx,
m_remote_image_ctx->id, mock_remote_parent_image_ctx, 0);
+ expect_test_op_features(mock_remote_clone_image_ctx, false);
expect_clone_image(mock_clone_request, -EINVAL);
expect_close_image(mock_close_image_request, mock_remote_parent_image_ctx, 0);
expect_open_image(mock_open_image_request, m_remote_io_ctx,
m_remote_image_ctx->id, mock_remote_parent_image_ctx, 0);
+ expect_test_op_features(mock_remote_clone_image_ctx, false);
expect_clone_image(mock_clone_request, 0);
expect_close_image(mock_close_image_request, mock_remote_parent_image_ctx,
-EINVAL);