summaryrefslogtreecommitdiffstats
path: root/remoting
diff options
context:
space:
mode:
authorlambroslambrou@chromium.org <lambroslambrou@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-15 13:44:27 +0000
committerlambroslambrou@chromium.org <lambroslambrou@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-15 13:44:27 +0000
commitd49c0e28bb2439746cbaf19c2bc84f796e6dc32f (patch)
tree749bf9cdff05a39bd4b172d7beef72ef5916706e /remoting
parent54ce29c0a77316ad7e464ab9c1b3e5c196e0d8fa (diff)
downloadchromium_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.cc17
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(