]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
test/librbd: fix valgrind memory leak warning
authorMykola Golub <mgolub@mirantis.com>
Wed, 23 Aug 2017 10:22:35 +0000 (12:22 +0200)
committerMykola Golub <mgolub@mirantis.com>
Wed, 23 Aug 2017 12:49:35 +0000 (14:49 +0200)
Signed-off-by: Mykola Golub <mgolub@mirantis.com>
src/test/librbd/test_mock_ExclusiveLock.cc

index 2d5d0c62ba327b94b15f298a76a1172b625d7a3c..3aa26f092e670f848708a672b36bdf05cf9bcf9d 100644 (file)
@@ -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);