浏览代码

2008-08-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>

	Fixed memory leak in test code
	* test/AnnounceListTest.cc
	* test/DefaultPeerListProcessorTest.cc
	* test/DefaultPeerStorageTest.cc
	* test/MetaFileUtilTest.cc
Tatsuhiro Tsujikawa 17 年之前
父节点
当前提交
fcb7254bf5
共有 5 个文件被更改,包括 45 次插入22 次删除
  1. 8 0
      ChangeLog
  2. 26 17
      test/AnnounceListTest.cc
  3. 4 2
      test/DefaultPeerListProcessorTest.cc
  4. 4 0
      test/DefaultPeerStorageTest.cc
  5. 3 3
      test/MetaFileUtilTest.cc

+ 8 - 0
ChangeLog

@@ -1,3 +1,11 @@
+2008-08-07  Tatsuhiro Tsujikawa  <tujikawa at rednoah dot com>
+
+	Fixed memory leak in test code
+	* test/AnnounceListTest.cc
+	* test/DefaultPeerListProcessorTest.cc
+	* test/DefaultPeerStorageTest.cc
+	* test/MetaFileUtilTest.cc
+	
 2008-08-07  Tatsuhiro Tsujikawa  <tujikawa at rednoah dot com>
 
 	Fixed wrong argument passing to BitfieldMan::isBitSet()

+ 26 - 17
test/AnnounceListTest.cc

@@ -1,7 +1,7 @@
 #include "AnnounceList.h"
 #include "MetaFileUtil.h"
 #include "Exception.h"
-#include "Dictionary.h"
+#include "List.h"
 #include <cppunit/extensions/HelperMacros.h>
 
 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<List> announces
+    (dynamic_cast<List*>(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<List> announces
+    (dynamic_cast<List*>(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<List> announces
+    (dynamic_cast<List*>(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<List> announces
+    (dynamic_cast<List*>(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<List> announces
+    (dynamic_cast<List*>(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<List> announces
+    (dynamic_cast<List*>(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<List> announces
+    (dynamic_cast<List*>(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<List> announces
+    (dynamic_cast<List*>(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);

+ 4 - 2
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<Dictionary> dic
+    (dynamic_cast<Dictionary*>(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<Dictionary> dic
+    (dynamic_cast<Dictionary*>(MetaFileUtil::bdecoding(peersString)));
 
   std::deque<SharedHandle<Peer> > peers;
   proc.extractPeer(peers, dic->get("peers"));

+ 4 - 0
test/DefaultPeerStorageTest.cc

@@ -35,6 +35,10 @@ public:
     btRuntime.reset(new BtRuntime());
   }
 
+  void tearDown() {
+    delete option;
+  }
+
   void testCountPeer();
   void testDeleteUnusedPeer();
   void testAddPeer();

+ 3 - 3
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<Dictionary*>(entry);
-  CPPUNIT_ASSERT(d != NULL);
+  SharedHandle<MetaEntry> entry(MetaFileUtil::parseMetaFile("test.torrent"));
+  SharedHandle<Dictionary> d = dynamic_pointer_cast<Dictionary>(entry);
+  CPPUNIT_ASSERT(!d.isNull());
 }
 
 void MetaFileUtilTest::testBdecoding() {