diff options
author | lambroslambrou@chromium.org <lambroslambrou@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-15 13:44:27 +0000 |
---|---|---|
committer | lambroslambrou@chromium.org <lambroslambrou@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-15 13:44:27 +0000 |
commit | d49c0e28bb2439746cbaf19c2bc84f796e6dc32f (patch) | |
tree | 749bf9cdff05a39bd4b172d7beef72ef5916706e | |
parent | 54ce29c0a77316ad7e464ab9c1b3e5c196e0d8fa (diff) | |
download | chromium_src-d49c0e28bb2439746cbaf19c2bc84f796e6dc32f.zip chromium_src-d49c0e28bb2439746cbaf19c2bc84f796e6dc32f.tar.gz chromium_src-d49c0e28bb2439746cbaf19c2bc84f796e6dc32f.tar.bz2 |
Fix leak in HeartbeatSenderTest.DoSendStanza and remove valgrind suppression.
BUG=74850
TEST=Valgrind bots stay green.
Review URL: http://codereview.chromium.org/6624095
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78205 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | remoting/host/heartbeat_sender_unittest.cc | 17 | ||||
-rw-r--r-- | tools/heapcheck/suppressions.txt | 7 | ||||
-rw-r--r-- | tools/valgrind/memcheck/suppressions.txt | 10 |
3 files changed, 17 insertions, 17 deletions
diff --git a/remoting/host/heartbeat_sender_unittest.cc b/remoting/host/heartbeat_sender_unittest.cc index f2f0881..dded547 100644 --- a/remoting/host/heartbeat_sender_unittest.cc +++ b/remoting/host/heartbeat_sender_unittest.cc @@ -25,6 +25,7 @@ using buzz::XmlElement; using testing::_; using testing::DeleteArg; using testing::DoAll; +using testing::Invoke; using testing::NotNull; using testing::Return; @@ -52,6 +53,20 @@ class MockIqRequest : public IqRequest { const std::string& addressee, XmlElement* iq_body)); MOCK_METHOD1(set_callback, void(IqRequest::ReplyCallback*)); + + // Ensure this takes ownership of the pointer, as the real IqRequest object + // would, to avoid memory-leak. + void set_callback_hook(IqRequest::ReplyCallback* callback) { + callback_.reset(callback); + } + + void Init() { + ON_CALL(*this, set_callback(_)) + .WillByDefault(Invoke(this, &MockIqRequest::set_callback_hook)); + } + + private: + scoped_ptr<IqRequest::ReplyCallback> callback_; }; class HeartbeatSenderTest : public testing::Test { @@ -81,6 +96,8 @@ class HeartbeatSenderTest : public testing::Test { TEST_F(HeartbeatSenderTest, DoSendStanza) { // |iq_request| is freed by HeartbeatSender. MockIqRequest* iq_request = new MockIqRequest(); + iq_request->Init(); + EXPECT_CALL(*iq_request, set_callback(_)).Times(1); scoped_refptr<HeartbeatSender> heartbeat_sender( diff --git a/tools/heapcheck/suppressions.txt b/tools/heapcheck/suppressions.txt index 68f8828d..a2b5455 100644 --- a/tools/heapcheck/suppressions.txt +++ b/tools/heapcheck/suppressions.txt @@ -1202,13 +1202,6 @@ fun:GpuProcessHostUIShim::GetForRenderer } { - bug_74850 - Heapcheck:Leak - fun:Callback1::Type* NewCallback - fun:remoting::HeartbeatSender::Start - fun:remoting::HeartbeatSenderTest_DoSendStanza_Test::TestBody -} -{ bug_75120 Heapcheck:Leak fun:remoting::ChromotingHostTest::SetUp diff --git a/tools/valgrind/memcheck/suppressions.txt b/tools/valgrind/memcheck/suppressions.txt index ad68bff..10709c2 100644 --- a/tools/valgrind/memcheck/suppressions.txt +++ b/tools/valgrind/memcheck/suppressions.txt @@ -3858,16 +3858,6 @@ fun:_ZN27ScopedRunnableMethodFactoryI13ThreadWatcherE14RunnableMethodIMS0_FvvE6Tuple0E3RunEv } { - bug_74850 - Memcheck:Leak - fun:_Znw* - fun:_Z11NewCallbackIN8remoting15HeartbeatSenderEPKN4buzz10XmlElementEEPN9Callback1IT0_E4TypeEPT_MSB_FvS7_E - fun:_ZN8remoting15HeartbeatSender5StartEv - fun:_ZN8remoting37HeartbeatSenderTest_DoSendStanza_Test8TestBodyEv - fun:_ZN7testing8internal38HandleSehExceptionsInMethodIfSupportedINS_4TestEvEET0_PT_MS4_FS3_vEPKc - fun:_ZN7testing8internal35HandleExceptionsInMethodIfSupportedINS_4TestEvEET0_PT_MS4_FS3_vEPKc -} -{ bug_75019 Memcheck:Leak fun:_Znw* |