From fcb7254bf562d3e17c1e5892db4144f0a60e40ce Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Thu, 7 Aug 2008 14:21:50 +0000 Subject: [PATCH] 2008-08-07 Tatsuhiro Tsujikawa Fixed memory leak in test code * test/AnnounceListTest.cc * test/DefaultPeerListProcessorTest.cc * test/DefaultPeerStorageTest.cc * test/MetaFileUtilTest.cc --- ChangeLog | 8 ++++++ test/AnnounceListTest.cc | 43 +++++++++++++++++----------- test/DefaultPeerListProcessorTest.cc | 6 ++-- test/DefaultPeerStorageTest.cc | 4 +++ test/MetaFileUtilTest.cc | 6 ++-- 5 files changed, 45 insertions(+), 22 deletions(-) diff --git a/ChangeLog b/ChangeLog index f6204f44..f349178e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-08-07 Tatsuhiro Tsujikawa + + Fixed memory leak in test code + * test/AnnounceListTest.cc + * test/DefaultPeerListProcessorTest.cc + * test/DefaultPeerStorageTest.cc + * test/MetaFileUtilTest.cc + 2008-08-07 Tatsuhiro Tsujikawa Fixed wrong argument passing to BitfieldMan::isBitSet() diff --git a/test/AnnounceListTest.cc b/test/AnnounceListTest.cc index 4c9fec81..56d0e789 100644 --- a/test/AnnounceListTest.cc +++ b/test/AnnounceListTest.cc @@ -1,7 +1,7 @@ #include "AnnounceList.h" #include "MetaFileUtil.h" #include "Exception.h" -#include "Dictionary.h" +#include "List.h" #include namespace aria2 { @@ -43,11 +43,12 @@ CPPUNIT_TEST_SUITE_REGISTRATION( AnnounceListTest ); void AnnounceListTest::testSingleElementList() { std::string peersString = "ll8:tracker1el8:tracker2el8:tracker3ee"; - Dictionary* announces = (Dictionary*)MetaFileUtil::bdecoding(peersString); + SharedHandle announces + (dynamic_cast(MetaFileUtil::bdecoding(peersString))); // ANNOUNCE_LIST // [ [ tracker1 ], [ tracker2 ], [ tracker3 ] ] - AnnounceList announceList(announces); + AnnounceList announceList(announces.get()); CPPUNIT_ASSERT(!announceList.allTiersFailed()); std::string url = announceList.getAnnounce(); @@ -89,10 +90,12 @@ void AnnounceListTest::testSingleElementList() { void AnnounceListTest::testMultiElementList() { std::string peersString = "ll8:tracker18:tracker28:tracker3ee"; - Dictionary* announces = (Dictionary*)MetaFileUtil::bdecoding(peersString); + SharedHandle announces + (dynamic_cast(MetaFileUtil::bdecoding(peersString))); + // ANNOUNCE_LIST // [ [ tracker1, tracker2, tracker3 ] ] - AnnounceList announceList(announces); + AnnounceList announceList(announces.get()); CPPUNIT_ASSERT(!announceList.allTiersFailed()); std::string url = announceList.getAnnounce(); @@ -121,11 +124,12 @@ void AnnounceListTest::testMultiElementList() { void AnnounceListTest::testSingleAndMulti() { std::string peersString = "ll8:tracker18:tracker2el8:tracker3ee"; - Dictionary* announces = (Dictionary*)MetaFileUtil::bdecoding(peersString); + SharedHandle announces + (dynamic_cast(MetaFileUtil::bdecoding(peersString))); // ANNOUNCE_LIST // [ [ tracker1, tracker2 ], [ tracker3 ] ] - AnnounceList announceList(announces); + AnnounceList announceList(announces.get()); std::string url = announceList.getAnnounce(); CPPUNIT_ASSERT_EQUAL(std::string("tracker1"), url); @@ -147,20 +151,22 @@ void AnnounceListTest::testSingleAndMulti() { void AnnounceListTest::testNoGroup() { std::string peersString = "llee"; - Dictionary* announces = (Dictionary*)MetaFileUtil::bdecoding(peersString); + SharedHandle announces + (dynamic_cast(MetaFileUtil::bdecoding(peersString))); - AnnounceList announceList(announces); + AnnounceList announceList(announces.get()); CPPUNIT_ASSERT(announceList.countTier() == 0); } void AnnounceListTest::testNextEventIfAfterStarted() { std::string peersString = "ll8:tracker1ee"; - Dictionary* announces = (Dictionary*)MetaFileUtil::bdecoding(peersString); + SharedHandle announces + (dynamic_cast(MetaFileUtil::bdecoding(peersString))); // ANNOUNCE_LIST // [ [ tracker1 ] ] - AnnounceList announceList(announces); + AnnounceList announceList(announces.get()); announceList.setEvent(AnnounceTier::STOPPED); announceList.announceFailure(); announceList.resetTier(); @@ -176,11 +182,12 @@ void AnnounceListTest::testNextEventIfAfterStarted() { void AnnounceListTest::testEvent() { std::string peersString = "ll8:tracker1el8:tracker2el8:tracker3ee"; - Dictionary* announces = (Dictionary*)MetaFileUtil::bdecoding(peersString); + SharedHandle announces + (dynamic_cast(MetaFileUtil::bdecoding(peersString))); // ANNOUNCE_LIST // [ [ tracker1 ], [ tracker2 ], [ tracker3 ] ] - AnnounceList announceList(announces); + AnnounceList announceList(announces.get()); announceList.setEvent(AnnounceTier::STOPPED); announceList.announceSuccess(); @@ -200,11 +207,12 @@ void AnnounceListTest::testEvent() { void AnnounceListTest::testCountStoppedAllowedTier() { std::string peersString = "ll8:tracker1el8:tracker2el8:tracker3ee"; - Dictionary* announces = (Dictionary*)MetaFileUtil::bdecoding(peersString); + SharedHandle announces + (dynamic_cast(MetaFileUtil::bdecoding(peersString))); // ANNOUNCE_LIST // [ [ tracker1 ], [ tracker2 ], [ tracker3 ] ] - AnnounceList announceList(announces); + AnnounceList announceList(announces.get()); CPPUNIT_ASSERT_EQUAL((size_t)0, announceList.countStoppedAllowedTier()); announceList.setEvent(AnnounceTier::STARTED); @@ -227,11 +235,12 @@ void AnnounceListTest::testCountStoppedAllowedTier() { void AnnounceListTest::testCountCompletedAllowedTier() { std::string peersString = "ll8:tracker1el8:tracker2el8:tracker3ee"; - Dictionary* announces = (Dictionary*)MetaFileUtil::bdecoding(peersString); + SharedHandle announces + (dynamic_cast(MetaFileUtil::bdecoding(peersString))); // ANNOUNCE_LIST // [ [ tracker1 ], [ tracker2 ], [ tracker3 ] ] - AnnounceList announceList(announces); + AnnounceList announceList(announces.get()); CPPUNIT_ASSERT_EQUAL((size_t)0, announceList.countCompletedAllowedTier()); announceList.setEvent(AnnounceTier::STARTED); diff --git a/test/DefaultPeerListProcessorTest.cc b/test/DefaultPeerListProcessorTest.cc index 10774989..4dc00e9e 100644 --- a/test/DefaultPeerListProcessorTest.cc +++ b/test/DefaultPeerListProcessorTest.cc @@ -30,7 +30,8 @@ void DefaultPeerListProcessorTest::testExtractPeer() { DefaultPeerListProcessor proc; std::string peersString = "d5:peersld2:ip11:192.168.0.17:peer id20:aria2-000000000000004:porti2006eeee"; - Dictionary* dic = (Dictionary*)MetaFileUtil::bdecoding(peersString); + SharedHandle dic + (dynamic_cast(MetaFileUtil::bdecoding(peersString))); CPPUNIT_ASSERT(proc.canHandle(dic->get("peers"))); @@ -46,7 +47,8 @@ void DefaultPeerListProcessorTest::testExtract2Peers() { DefaultPeerListProcessor proc; std::string peersString = "d5:peersld2:ip11:192.168.0.17:peer id20:aria2-000000000000004:porti2006eed2:ip11:192.168.0.27:peer id20:aria2-000000000000004:porti2007eeee"; - Dictionary* dic = (Dictionary*)MetaFileUtil::bdecoding(peersString); + SharedHandle dic + (dynamic_cast(MetaFileUtil::bdecoding(peersString))); std::deque > peers; proc.extractPeer(peers, dic->get("peers")); diff --git a/test/DefaultPeerStorageTest.cc b/test/DefaultPeerStorageTest.cc index bbed380b..1c09799a 100644 --- a/test/DefaultPeerStorageTest.cc +++ b/test/DefaultPeerStorageTest.cc @@ -35,6 +35,10 @@ public: btRuntime.reset(new BtRuntime()); } + void tearDown() { + delete option; + } + void testCountPeer(); void testDeleteUnusedPeer(); void testAddPeer(); diff --git a/test/MetaFileUtilTest.cc b/test/MetaFileUtilTest.cc index 4ff2a410..32fab3fb 100644 --- a/test/MetaFileUtilTest.cc +++ b/test/MetaFileUtilTest.cc @@ -28,9 +28,9 @@ public: CPPUNIT_TEST_SUITE_REGISTRATION( MetaFileUtilTest ); void MetaFileUtilTest::testParseMetaFile() { - MetaEntry* entry = MetaFileUtil::parseMetaFile("test.torrent"); - Dictionary* d = dynamic_cast(entry); - CPPUNIT_ASSERT(d != NULL); + SharedHandle entry(MetaFileUtil::parseMetaFile("test.torrent")); + SharedHandle d = dynamic_pointer_cast(entry); + CPPUNIT_ASSERT(!d.isNull()); } void MetaFileUtilTest::testBdecoding() {