EXPECT_CALL(managed_lock, set_state_waiting_for_lock());
}
+ void expect_set_state_post_acquiring(MockManagedLock &managed_lock) {
+ EXPECT_CALL(managed_lock, set_state_post_acquiring());
+ }
+
void expect_is_state_acquiring(MockManagedLock &managed_lock, bool ret_val) {
EXPECT_CALL(managed_lock, is_state_acquiring())
.WillOnce(Return(ret_val));
.WillOnce(CompleteRequest(&pre_acquire_request, r));
}
- void expect_post_acquire_request(MockPostAcquireRequest &post_acquire_request,
+ void expect_post_acquire_request(MockExclusiveLock &mock_exclusive_lock,
+ MockPostAcquireRequest &post_acquire_request,
int r) {
EXPECT_CALL(post_acquire_request, send())
- .WillOnce(CompleteRequest(&post_acquire_request, r));
+ .WillOnce(DoAll(FinishLockUnlock(&post_acquire_request),
+ CompleteRequest(&post_acquire_request, r)));
+ expect_set_state_post_acquiring(mock_exclusive_lock);
}
void expect_pre_release_request(MockPreReleaseRequest &pre_release_request,
ASSERT_EQ(0, when_pre_acquire_lock_handler(exclusive_lock));
MockPostAcquireRequest try_lock_post_acquire;
- expect_post_acquire_request(try_lock_post_acquire, 0);
+ expect_post_acquire_request(exclusive_lock, try_lock_post_acquire, 0);
expect_is_state_acquiring(exclusive_lock, true);
expect_notify_acquired_lock(mock_image_ctx);
expect_unblock_writes(mock_image_ctx);
ASSERT_EQ(0, when_pre_acquire_lock_handler(exclusive_lock));
MockPostAcquireRequest request_lock_post_acquire;
- expect_post_acquire_request(request_lock_post_acquire, 0);
+ expect_post_acquire_request(exclusive_lock, request_lock_post_acquire, 0);
expect_is_state_acquiring(exclusive_lock, true);
expect_notify_acquired_lock(mock_image_ctx);
expect_unblock_writes(mock_image_ctx);
ASSERT_EQ(0, when_pre_acquire_lock_handler(exclusive_lock));
MockPostAcquireRequest request_lock_post_acquire;
- expect_post_acquire_request(request_lock_post_acquire, -EPERM);
+ expect_post_acquire_request(exclusive_lock, request_lock_post_acquire,
+ -EPERM);
expect_is_state_acquiring(exclusive_lock, true);
ASSERT_EQ(-EPERM, when_post_acquire_lock_handler(exclusive_lock, 0));
}
ASSERT_EQ(0, when_pre_acquire_lock_handler(exclusive_lock));
MockPostAcquireRequest try_lock_post_acquire;
- expect_post_acquire_request(try_lock_post_acquire, 0);
+ expect_post_acquire_request(exclusive_lock, try_lock_post_acquire, 0);
expect_is_state_acquiring(exclusive_lock, true);
expect_notify_acquired_lock(mock_image_ctx);
expect_unblock_writes(mock_image_ctx);