InSequence seq;
expect_is_journal_appending(mock_journal, false);
- expect_write_to_cache(mock_image_ctx, ictx->get_object_name(0),
- 0, 1, 0, 0);
+ if (mock_image_ctx.image_ctx->cache) {
+ expect_write_to_cache(mock_image_ctx, ictx->get_object_name(0),
+ 0, 1, 0, 0);
+ } else {
+ expect_object_request_send(mock_image_ctx, mock_aio_object_request, 0);
+ }
C_SaferCond aio_comp_ctx;
AioCompletion *aio_comp = AioCompletion::create_and_start(
InSequence seq;
expect_is_journal_appending(mock_journal, false);
- expect_write_to_cache(mock_image_ctx, ictx->get_object_name(0),
- 0, 1, 0, 0);
+ if (mock_image_ctx.image_ctx->cache) {
+ expect_write_to_cache(mock_image_ctx, ictx->get_object_name(0),
+ 0, 1, 0, 0);
+ } else {
+ expect_object_request_send(mock_image_ctx, mock_aio_object_request, 0);
+ }
+
C_SaferCond aio_comp_ctx;
AioCompletion *aio_comp = AioCompletion::create_and_start(
}
void expect_flush_cache(MockImageCtx &mock_image_ctx, int r) {
+ if (!mock_image_ctx.image_ctx->cache) {
+ return;
+ }
EXPECT_CALL(mock_image_ctx, flush_cache(_))
.WillOnce(CompleteContext(r, static_cast<ContextWQ*>(NULL)));
expect_op_work_queue(mock_image_ctx);
}
void expect_invalidate_cache(MockImageCtx &mock_image_ctx, int r) {
+ if (!mock_image_ctx.image_ctx->cache) {
+ return;
+ }
EXPECT_CALL(mock_image_ctx, invalidate_cache(false, _))
.WillOnce(WithArg<1>(CompleteContext(r, static_cast<ContextWQ*>(NULL))));
expect_op_work_queue(mock_image_ctx);
TEST_F(TestMockOperationResizeRequest, FlushCacheError) {
librbd::ImageCtx *ictx;
ASSERT_EQ(0, open_image(m_image_name, &ictx));
+ REQUIRE(ictx->cache);
MockImageCtx mock_image_ctx(*ictx);
MockExclusiveLock mock_exclusive_lock;
TEST_F(TestMockOperationResizeRequest, InvalidateCacheError) {
librbd::ImageCtx *ictx;
ASSERT_EQ(0, open_image(m_image_name, &ictx));
+ REQUIRE(ictx->cache);
MockImageCtx mock_image_ctx(*ictx);
MockExclusiveLock mock_exclusive_lock;
TEST_F(TestMockOperationSnapshotRollbackRequest, InvalidateCacheError) {
librbd::ImageCtx *ictx;
ASSERT_EQ(0, open_image(m_image_name, &ictx));
+ REQUIRE(ictx->cache);
MockOperationImageCtx mock_image_ctx(*ictx);
MockExclusiveLock mock_exclusive_lock;