#include "test/librbd/mock/MockJournal.h"
#include "test/librbd/mock/MockObjectMap.h"
#include "test/librados_test_stub/MockTestMemIoCtxImpl.h"
+#include "common/AsyncOpTracker.h"
#include "librbd/exclusive_lock/PreReleaseRequest.h"
#include "gmock/gmock.h"
#include "gtest/gtest.h"
EXPECT_CALL(*mock_image_ctx.state, handle_prepare_lock_complete());
}
+ AsyncOpTracker m_async_op_tracker;
};
TEST_F(TestMockExclusiveLockPreReleaseRequest, Success) {
C_SaferCond ctx;
MockPreReleaseRequest *req = MockPreReleaseRequest::create(
- mock_image_ctx, false, &ctx);
+ mock_image_ctx, false, m_async_op_tracker, &ctx);
req->send();
ASSERT_EQ(0, ctx.wait());
}
C_SaferCond ctx;
MockPreReleaseRequest *req = MockPreReleaseRequest::create(
- mock_image_ctx, false, &ctx);
+ mock_image_ctx, false, m_async_op_tracker, &ctx);
req->send();
ASSERT_EQ(0, ctx.wait());
}
C_SaferCond release_ctx;
C_SaferCond ctx;
MockPreReleaseRequest *req = MockPreReleaseRequest::create(
- mock_image_ctx, true, &ctx);
+ mock_image_ctx, true, m_async_op_tracker, &ctx);
req->send();
ASSERT_EQ(0, ctx.wait());
}
C_SaferCond ctx;
MockPreReleaseRequest *req = MockPreReleaseRequest::create(
- mock_image_ctx, false, &ctx);
+ mock_image_ctx, false, m_async_op_tracker, &ctx);
req->send();
ASSERT_EQ(0, ctx.wait());
}
C_SaferCond ctx;
MockPreReleaseRequest *req = MockPreReleaseRequest::create(
- mock_image_ctx, true, &ctx);
+ mock_image_ctx, true, m_async_op_tracker, &ctx);
req->send();
ASSERT_EQ(-EINVAL, ctx.wait());
}
C_SaferCond ctx;
MockPreReleaseRequest *req = MockPreReleaseRequest::create(
- mock_image_ctx, true, &ctx);
+ mock_image_ctx, true, m_async_op_tracker, &ctx);
req->send();
ASSERT_EQ(0, ctx.wait());
}