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 /remoting | |
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
Diffstat (limited to 'remoting')
-rw-r--r-- | remoting/host/heartbeat_sender_unittest.cc | 17 |
1 files changed, 17 insertions, 0 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( |