From 0fbe3f7583a6cbe69c9a67b6ec7b39eeca5df5f6 Mon Sep 17 00:00:00 2001 From: Mykola Golub Date: Wed, 23 Aug 2017 12:22:35 +0200 Subject: [PATCH] test/librbd: fix valgrind memory leak warning Signed-off-by: Mykola Golub --- src/test/librbd/test_mock_ExclusiveLock.cc | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/test/librbd/test_mock_ExclusiveLock.cc b/src/test/librbd/test_mock_ExclusiveLock.cc index 2d5d0c62ba3..3aa26f092e6 100644 --- a/src/test/librbd/test_mock_ExclusiveLock.cc +++ b/src/test/librbd/test_mock_ExclusiveLock.cc @@ -176,6 +176,10 @@ public: 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)); @@ -246,10 +250,13 @@ public: .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, @@ -364,7 +371,7 @@ TEST_F(TestMockExclusiveLock, StateTransitions) { 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); @@ -386,7 +393,7 @@ TEST_F(TestMockExclusiveLock, StateTransitions) { 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); @@ -570,7 +577,8 @@ TEST_F(TestMockExclusiveLock, PostAcquireLockError) { 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)); } @@ -623,7 +631,7 @@ TEST_F(TestMockExclusiveLock, ReacquireLock) { 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); -- 2.39.5