mirror of https://github.com/aria2/aria2
				
				
				
			2007-12-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Allocate bitfield in Peer when it is really used. More specifically, bitfield in Peer is allocated after the connection is established and deallocated when the connection is dropped. Since 2 parameters(piece length and total length) was removed from the constructor of Peer class, many test classes were modified accordingly. See svn log for more detailed information. * src/PeerInteractionCommand.cc * src/CompactPeerListProcessor.cc * src/Peer.cc * src/DefaultPeerListProcessor.cc * src/PeerListenCommand.cc * src/PeerReceiveHandshakeCommand.cc Fixed memory leak * src/Piece.ccpull/1/head
							parent
							
								
									eed41706fc
								
							
						
					
					
						commit
						e39f7a7e9c
					
				
							
								
								
									
										18
									
								
								ChangeLog
								
								
								
								
							
							
						
						
									
										18
									
								
								ChangeLog
								
								
								
								
							|  | @ -1,3 +1,21 @@ | |||
| 2007-12-26  Tatsuhiro Tsujikawa  <tujikawa at rednoah dot com> | ||||
| 
 | ||||
| 	Allocate bitfield in Peer when it is really used. More specifically, | ||||
| 	bitfield in Peer is allocated after the connection is established and | ||||
| 	deallocated when the connection is dropped. | ||||
| 	Since 2 parameters(piece length and total length) was removed from the | ||||
| 	constructor of Peer class, many test classes were modified accordingly. | ||||
| 	See svn log for more detailed information. | ||||
| 	* src/PeerInteractionCommand.cc | ||||
| 	* src/CompactPeerListProcessor.cc | ||||
| 	* src/Peer.cc | ||||
| 	* src/DefaultPeerListProcessor.cc | ||||
| 	* src/PeerListenCommand.cc | ||||
| 	* src/PeerReceiveHandshakeCommand.cc | ||||
| 
 | ||||
| 	Fixed memory leak | ||||
| 	* src/Piece.cc | ||||
| 
 | ||||
| 2007-12-25  Tatsuhiro Tsujikawa  <tujikawa at rednoah dot com> | ||||
| 
 | ||||
| 	Changed the default value of PREF_PEER_CONNECTION_TIMEOUT and | ||||
|  |  | |||
|  | @ -49,7 +49,7 @@ Peers CompactPeerListProcessor::extractPeer(const MetaEntry* peersEntry) { | |||
|       in.s_addr = *(uint32_t*)(peersData->getData()+i); | ||||
|       string ipaddr = inet_ntoa(in); | ||||
|       uint16_t port = ntohs(*(uint16_t*)(peersData->getData()+i+4)); | ||||
|       PeerHandle peer = new Peer(ipaddr, port, pieceLength, totalLength);       | ||||
|       PeerHandle peer = new Peer(ipaddr, port);       | ||||
|       peers.push_back(peer); | ||||
|     } | ||||
|   } | ||||
|  |  | |||
|  | @ -60,8 +60,7 @@ Peers DefaultPeerListProcessor::extractPeer(const MetaEntry* peersEntry) { | |||
|     if(!ip || !port || !port->isNumber()) { | ||||
|       continue; | ||||
|     } | ||||
|     PeerHandle peer = new Peer(ip->toString(), port->toInt(), pieceLength, | ||||
| 			       totalLength); | ||||
|     PeerHandle peer = new Peer(ip->toString(), port->toInt()); | ||||
|     peers.push_back(peer); | ||||
|   } | ||||
|   return peers; | ||||
|  |  | |||
							
								
								
									
										49
									
								
								src/Peer.cc
								
								
								
								
							
							
						
						
									
										49
									
								
								src/Peer.cc
								
								
								
								
							|  | @ -39,18 +39,19 @@ | |||
| # include "MessageDigestHelper.h" | ||||
| #endif // ENABLE_MESSAGE_DIGEST
 | ||||
| 
 | ||||
| Peer::Peer(string ipaddr, uint16_t port, int32_t pieceLength, int64_t totalLength): | ||||
| #define BAD_CONDITION_INTERVAL 10 | ||||
| 
 | ||||
| Peer::Peer(string ipaddr, uint16_t port): | ||||
|   ipaddr(ipaddr), | ||||
|   port(port), | ||||
|   _bitfield(0), | ||||
|   sessionUploadLength(0), | ||||
|   sessionDownloadLength(0), | ||||
|   active(false), | ||||
|   _badConditionStartTime(0), | ||||
|   _badConditionInterval(10) | ||||
|   _seeder(false) | ||||
| { | ||||
|   resetStatus(); | ||||
|   this->bitfield = BitfieldManFactory::getFactoryInstance()-> | ||||
|     createBitfieldMan(pieceLength, totalLength); | ||||
|   string idSeed = ipaddr+":"+Util::itos(port); | ||||
| #ifdef ENABLE_MESSAGE_DIGEST | ||||
|   id = MessageDigestHelper::digestString("sha1", idSeed); | ||||
|  | @ -59,19 +60,34 @@ Peer::Peer(string ipaddr, uint16_t port, int32_t pieceLength, int64_t totalLengt | |||
| #endif // ENABLE_MESSAGE_DIGEST
 | ||||
| } | ||||
| 
 | ||||
| void Peer::reconfigure(int32_t pieceLength, int64_t totalLength) | ||||
| void Peer::allocateBitfield(int32_t pieceLength, int64_t totalLength) | ||||
| { | ||||
|   delete bitfield; | ||||
|   this->bitfield = BitfieldManFactory::getFactoryInstance()-> | ||||
|     createBitfieldMan(pieceLength, totalLength);   | ||||
|   delete _bitfield; | ||||
|   _bitfield = BitfieldManFactory::getFactoryInstance()->createBitfieldMan(pieceLength, totalLength);   | ||||
| } | ||||
| 
 | ||||
| void Peer::deallocateBitfield() | ||||
| { | ||||
|   delete _bitfield; | ||||
|   _bitfield = 0; | ||||
| } | ||||
| 
 | ||||
| void Peer::updateSeeder() | ||||
| { | ||||
|   assert(_bitfield); | ||||
|   if(_bitfield->isAllBitSet()) { | ||||
|     _seeder = true; | ||||
|   }   | ||||
| } | ||||
| 
 | ||||
| void Peer::updateBitfield(int32_t index, int32_t operation) { | ||||
|   assert(_bitfield); | ||||
|   if(operation == 1) { | ||||
|     bitfield->setBit(index); | ||||
|     _bitfield->setBit(index); | ||||
|   } else if(operation == 0) { | ||||
|     bitfield->unsetBit(index); | ||||
|     _bitfield->unsetBit(index); | ||||
|   } | ||||
|   updateSeeder(); | ||||
| } | ||||
| 
 | ||||
| #define THRESHOLD 1024*1024*2 | ||||
|  | @ -84,11 +100,8 @@ bool Peer::shouldBeChoking() const { | |||
| } | ||||
| 
 | ||||
| bool Peer::hasPiece(int32_t index) const { | ||||
|   return bitfield->isBitSet(index); | ||||
| } | ||||
| 
 | ||||
| bool Peer::isSeeder() const { | ||||
|   return bitfield->isAllBitSet(); | ||||
|   assert(_bitfield); | ||||
|   return _bitfield->isBitSet(index); | ||||
| } | ||||
| 
 | ||||
| void Peer::resetStatus() { | ||||
|  | @ -133,7 +146,9 @@ void Peer::addAmAllowedIndex(int32_t index) { | |||
| } | ||||
| 
 | ||||
| void Peer::setAllBitfield() { | ||||
|   bitfield->setAllBit(); | ||||
|   assert(_bitfield); | ||||
|   _bitfield->setAllBit(); | ||||
|   _seeder = true; | ||||
| } | ||||
| 
 | ||||
| void Peer::updateLatency(int32_t latency) { | ||||
|  | @ -147,7 +162,7 @@ void Peer::startBadCondition() | |||
| 
 | ||||
| bool Peer::isGood() const | ||||
| { | ||||
|   return _badConditionStartTime.elapsed(_badConditionInterval); | ||||
|   return _badConditionStartTime.elapsed(BAD_CONDITION_INTERVAL); | ||||
| } | ||||
| 
 | ||||
| uint8_t Peer::getExtensionMessageID(const string& name) | ||||
|  |  | |||
							
								
								
									
										36
									
								
								src/Peer.h
								
								
								
								
							
							
						
						
									
										36
									
								
								src/Peer.h
								
								
								
								
							|  | @ -63,7 +63,7 @@ public: | |||
|   bool snubbing; | ||||
| private: | ||||
|   unsigned char peerId[PEER_ID_LENGTH]; | ||||
|   BitfieldMan* bitfield; | ||||
|   BitfieldMan* _bitfield; | ||||
|   bool fastExtensionEnabled; | ||||
|   // fast index set which a peer has sent to localhost.
 | ||||
|   Integers peerAllowedIndexSet; | ||||
|  | @ -79,12 +79,14 @@ private: | |||
|   string id; | ||||
|   Time _firstContactTime; | ||||
|   Time _badConditionStartTime; | ||||
|   int32_t _badConditionInterval; | ||||
|   bool _seeder; | ||||
| 
 | ||||
|   void updateSeeder(); | ||||
| public: | ||||
|   Peer(string ipaddr, uint16_t port, int32_t pieceLength, int64_t totalLength); | ||||
|   Peer(string ipaddr, uint16_t port); | ||||
| 
 | ||||
|   ~Peer() { | ||||
|     delete bitfield; | ||||
|     delete _bitfield; | ||||
|   } | ||||
| 
 | ||||
|   bool operator==(const Peer& p) { | ||||
|  | @ -163,10 +165,21 @@ public: | |||
|   const unsigned char* getPeerId() const { return this->peerId; } | ||||
|    | ||||
|   void setBitfield(const unsigned char* bitfield, int32_t bitfieldLength) { | ||||
|     this->bitfield->setBitfield(bitfield, bitfieldLength); | ||||
|     assert(_bitfield); | ||||
|     _bitfield->setBitfield(bitfield, bitfieldLength); | ||||
|     updateSeeder(); | ||||
|   } | ||||
|   const unsigned char* getBitfield() const { return bitfield->getBitfield(); } | ||||
|   int32_t getBitfieldLength() const { return bitfield->getBitfieldLength(); } | ||||
| 
 | ||||
|   const unsigned char* getBitfield() const { | ||||
|     assert(_bitfield); | ||||
|     return _bitfield->getBitfield(); | ||||
|   } | ||||
| 
 | ||||
|   int32_t getBitfieldLength() const { | ||||
|     assert(_bitfield); | ||||
|     return _bitfield->getBitfieldLength(); | ||||
|   } | ||||
| 
 | ||||
|   void setAllBitfield(); | ||||
| 
 | ||||
|   /**
 | ||||
|  | @ -210,7 +223,10 @@ public: | |||
| 
 | ||||
|   bool hasPiece(int32_t index) const; | ||||
| 
 | ||||
|   bool isSeeder() const; | ||||
|   bool isSeeder() const | ||||
|   { | ||||
|     return _seeder; | ||||
|   } | ||||
| 
 | ||||
|   void updateLatency(int32_t latency); | ||||
|   int32_t getLatency() const { return latency; } | ||||
|  | @ -223,7 +239,9 @@ public: | |||
| 
 | ||||
|   bool isGood() const; | ||||
| 
 | ||||
|   void reconfigure(int32_t pieceLength, int64_t totalLength); | ||||
|   void allocateBitfield(int32_t pieceLength, int64_t totalLength); | ||||
| 
 | ||||
|   void deallocateBitfield(); | ||||
| 
 | ||||
|   Time getFirstContactTime() const | ||||
|   { | ||||
|  |  | |||
|  | @ -133,6 +133,7 @@ PeerInteractionCommand::PeerInteractionCommand(int32_t cuid, | |||
| 
 | ||||
|   setUploadLimit(e->option->getAsInt(PREF_MAX_UPLOAD_LIMIT)); | ||||
|   peer->activate(); | ||||
|   peer->allocateBitfield(btContext->getPieceLength(), btContext->getTotalLength()); | ||||
| 
 | ||||
|   maxDownloadSpeedLimit = e->option->getAsInt(PREF_MAX_DOWNLOAD_LIMIT); | ||||
| 
 | ||||
|  | @ -140,6 +141,7 @@ PeerInteractionCommand::PeerInteractionCommand(int32_t cuid, | |||
| } | ||||
| 
 | ||||
| PeerInteractionCommand::~PeerInteractionCommand() { | ||||
|   peer->deallocateBitfield(); | ||||
|   peer->deactivate(); | ||||
|   PEER_OBJECT_CLUSTER(btContext)->unregisterHandle(peer->getId()); | ||||
| 					 | ||||
|  |  | |||
|  | @ -93,7 +93,7 @@ bool PeerListenCommand::execute() { | |||
|       if(peerInfo.first == localInfo.first) { | ||||
| 	continue; | ||||
|       } | ||||
|       PeerHandle peer = new Peer(peerInfo.first, 0, 0, 0); | ||||
|       PeerHandle peer = new Peer(peerInfo.first, 0); | ||||
|       PeerReceiveHandshakeCommand* command = | ||||
| 	new PeerReceiveHandshakeCommand(CUIDCounterSingletonHolder::instance()->newID(), | ||||
| 					peer, e, peerSocket); | ||||
|  |  | |||
|  | @ -76,7 +76,6 @@ bool PeerReceiveHandshakeCommand::executeInternal() | |||
|     TransferStat tstat = PEER_STORAGE(btContext)->calculateStat(); | ||||
|     if(!PIECE_STORAGE(btContext)->downloadFinished() && tstat.getDownloadSpeed() < _lowestSpeedLimit || | ||||
|        BT_RUNTIME(btContext)->getConnections() < MAX_PEERS) { | ||||
|       peer->reconfigure(btContext->getPieceLength(), btContext->getTotalLength()); | ||||
|       if(PEER_STORAGE(btContext)->addPeer(peer)) { | ||||
| 
 | ||||
| 	peer->cuid = cuid; | ||||
|  |  | |||
|  | @ -105,6 +105,7 @@ string Piece::toString() const { | |||
| 
 | ||||
| void Piece::reconfigure(int32_t length) | ||||
| { | ||||
|   delete bitfield; | ||||
|   this->length = length; | ||||
|   bitfield = | ||||
|     BitfieldManFactory::getFactoryInstance()->createBitfieldMan(_blockLength, length); | ||||
|  |  | |||
|  | @ -68,7 +68,7 @@ void BtAllowedFastMessageTest::testGetMessage() { | |||
| void BtAllowedFastMessageTest::testDoReceivedAction() { | ||||
|   BtAllowedFastMessage msg; | ||||
|   msg.setIndex(1); | ||||
|   PeerHandle peer = new Peer("localhost", 6969, 16*1024, 256*1024*1024); | ||||
|   PeerHandle peer = new Peer("localhost", 6969); | ||||
|   peer->setFastExtensionEnabled(true); | ||||
|   msg.setPeer(peer); | ||||
|   CPPUNIT_ASSERT(!peer->isInPeerAllowedIndexSet(1)); | ||||
|  | @ -85,7 +85,7 @@ void BtAllowedFastMessageTest::testDoReceivedAction() { | |||
| void BtAllowedFastMessageTest::testOnSendComplete() { | ||||
|   BtAllowedFastMessage msg; | ||||
|   msg.setIndex(1); | ||||
|   PeerHandle peer = new Peer("localhost", 6969, 16*1024, 256*1024*1024); | ||||
|   PeerHandle peer = new Peer("localhost", 6969); | ||||
|   peer->setFastExtensionEnabled(true); | ||||
|   msg.setPeer(peer); | ||||
|   CPPUNIT_ASSERT(!peer->isInAmAllowedIndexSet(1)); | ||||
|  |  | |||
|  | @ -68,7 +68,8 @@ void BtBitfieldMessageTest::testGetMessage() { | |||
| } | ||||
| 
 | ||||
| void BtBitfieldMessageTest::testDoReceivedAction() { | ||||
|   PeerHandle peer = new Peer("host1", 6969, 16*1024, 16*16*1024); | ||||
|   PeerHandle peer = new Peer("host1", 6969); | ||||
|   peer->allocateBitfield(16*1024, 16*16*1024); | ||||
|   BtBitfieldMessage msg; | ||||
|   msg.setPeer(peer); | ||||
|   unsigned char bitfield[] = { 0xff, 0xff }; | ||||
|  |  | |||
|  | @ -23,7 +23,7 @@ public: | |||
| 
 | ||||
|   void setUp() { | ||||
|     BtRegistry::unregisterAll();     | ||||
|     peer = new Peer("host", 6969, 16*1024, 256*1024); | ||||
|     peer = new Peer("host", 6969); | ||||
|     btContext = new MockBtContext(); | ||||
|     btContext->setInfoHash((const unsigned char*)"12345678901234567890"); | ||||
|     BtRegistry::registerPeerObjectCluster(btContext->getInfoHashAsString(), | ||||
|  |  | |||
|  | @ -26,7 +26,7 @@ public: | |||
| 
 | ||||
|   void setUp() { | ||||
|     BtRegistry::unregisterAll();     | ||||
|     peer = new Peer("host", 6969, 16*1024, 256*1024); | ||||
|     peer = new Peer("host", 6969); | ||||
|     btContext = new MockBtContext(); | ||||
|     btContext->setInfoHash((const unsigned char*)"12345678901234567890"); | ||||
|     BtRegistry::registerPeerObjectCluster(btContext->getInfoHashAsString(), | ||||
|  | @ -108,7 +108,6 @@ void BtChokeMessageTest::testGetMessage() { | |||
| 
 | ||||
| void BtChokeMessageTest::testDoReceivedAction() { | ||||
|   BtChokeMessage msg; | ||||
|   PeerHandle peer = new Peer("host", 6969, 16*1024, 256*1024); | ||||
|   msg.setPeer(peer); | ||||
|   msg.setBtContext(btContext); | ||||
| 
 | ||||
|  | @ -125,7 +124,6 @@ void BtChokeMessageTest::testDoReceivedAction() { | |||
| 
 | ||||
| void BtChokeMessageTest::testOnSendComplete() { | ||||
|   BtChokeMessage msg; | ||||
|   PeerHandle peer = new Peer("host", 6969, 16*1024, 256*1024); | ||||
|   msg.setPeer(peer); | ||||
|   msg.setBtContext(btContext); | ||||
| 
 | ||||
|  |  | |||
|  | @ -37,7 +37,7 @@ public: | |||
| CPPUNIT_TEST_SUITE_REGISTRATION(BtExtendedMessageTest); | ||||
| 
 | ||||
| void BtExtendedMessageTest::testCreate() { | ||||
|   PeerHandle peer = new Peer("192.168.0.1", 6969, 16*1024, 256*1024); | ||||
|   PeerHandle peer = new Peer("192.168.0.1", 6969); | ||||
|   peer->setExtension("charlie", 1); | ||||
|   MockBtContextHandle ctx = new MockBtContext(); | ||||
|   unsigned char infohash[20]; | ||||
|  |  | |||
|  | @ -58,7 +58,8 @@ void BtHaveAllMessageTest::testGetMessage() { | |||
| 
 | ||||
| void BtHaveAllMessageTest::testDoReceivedAction() { | ||||
|   BtHaveAllMessage msg; | ||||
|   PeerHandle peer = new Peer("host", 6969, 16*1024, 256*1024); | ||||
|   PeerHandle peer = new Peer("host", 6969); | ||||
|   peer->allocateBitfield(16*1024, 256*1024); | ||||
|   peer->setFastExtensionEnabled(true); | ||||
|   msg.setPeer(peer); | ||||
|    | ||||
|  |  | |||
|  | @ -63,7 +63,8 @@ void BtHaveMessageTest::testGetMessage() { | |||
| } | ||||
| 
 | ||||
| void BtHaveMessageTest::testDoReceivedAction() { | ||||
|   PeerHandle peer = new Peer("host", 6969, 16*1024, 256*1024); | ||||
|   PeerHandle peer = new Peer("host", 6969); | ||||
|   peer->allocateBitfield(16*1024, 256*1024); | ||||
|   BtHaveMessage msg; | ||||
|   msg.setIndex(1); | ||||
|   msg.setPeer(peer); | ||||
|  |  | |||
|  | @ -60,7 +60,7 @@ void BtHaveNoneMessageTest::testGetMessage() { | |||
| 
 | ||||
| void BtHaveNoneMessageTest::testDoReceivedAction() { | ||||
|   BtHaveNoneMessage msg; | ||||
|   PeerHandle peer = new Peer("host", 6969, 16*1024, 256*1024); | ||||
|   PeerHandle peer = new Peer("host", 6969); | ||||
|   peer->setFastExtensionEnabled(true); | ||||
|   msg.setPeer(peer); | ||||
|   msg.doReceivedAction(); | ||||
|  |  | |||
|  | @ -62,7 +62,7 @@ void BtInterestedMessageTest::testGetMessage() { | |||
| 
 | ||||
| void BtInterestedMessageTest::testDoReceivedAction() { | ||||
|   BtInterestedMessage msg; | ||||
|   PeerHandle peer = new Peer("host", 6969, 16*1024, 256*1024); | ||||
|   PeerHandle peer = new Peer("host", 6969); | ||||
|   msg.setPeer(peer); | ||||
|   CPPUNIT_ASSERT(!peer->peerInterested); | ||||
|   msg.doReceivedAction(); | ||||
|  | @ -71,7 +71,7 @@ void BtInterestedMessageTest::testDoReceivedAction() { | |||
| 
 | ||||
| void BtInterestedMessageTest::testOnSendComplete() { | ||||
|   BtInterestedMessage msg; | ||||
|   PeerHandle peer = new Peer("host", 6969, 16*1024, 256*1024); | ||||
|   PeerHandle peer = new Peer("host", 6969); | ||||
|   msg.setPeer(peer); | ||||
|   CPPUNIT_ASSERT(!peer->amInterested); | ||||
|   msg.onSendComplete(); | ||||
|  |  | |||
|  | @ -61,7 +61,7 @@ void BtNotInterestedMessageTest::testGetMessage() { | |||
| } | ||||
| 
 | ||||
| void BtNotInterestedMessageTest::testDoReceivedAction() { | ||||
|   PeerHandle peer = new Peer("host", 6969, 16*1024, 256*1024); | ||||
|   PeerHandle peer = new Peer("host", 6969); | ||||
|   peer->peerInterested = true; | ||||
|   BtNotInterestedMessage msg; | ||||
|   msg.setPeer(peer); | ||||
|  | @ -71,7 +71,7 @@ void BtNotInterestedMessageTest::testDoReceivedAction() { | |||
| } | ||||
| 
 | ||||
| void BtNotInterestedMessageTest::testOnSendComplete() { | ||||
|   PeerHandle peer = new Peer("host", 6969, 16*1024, 256*1024); | ||||
|   PeerHandle peer = new Peer("host", 6969); | ||||
|   peer->amInterested = true; | ||||
|   BtNotInterestedMessage msg; | ||||
|   msg.setPeer(peer); | ||||
|  |  | |||
|  | @ -80,7 +80,7 @@ public: | |||
|     btContext->setPieceLength(16*1024); | ||||
|     btContext->setTotalLength(256*1024); | ||||
| 
 | ||||
|     peer = new Peer("host", 6969, 16*1024, 256*1024); | ||||
|     peer = new Peer("host", 6969); | ||||
|     BtRegistry::registerPeerObjectCluster(btContext->getInfoHashAsString(), | ||||
| 					  new PeerObjectCluster()); | ||||
|     PEER_OBJECT_CLUSTER(btContext)->registerHandle(peer->getId(), new PeerObject()); | ||||
|  |  | |||
|  | @ -66,7 +66,7 @@ public: | |||
| 
 | ||||
|   void setUp() { | ||||
|     BtRegistry::unregisterAll(); | ||||
|     peer = new Peer("host", 6969, 16*1024, 256*1024); | ||||
|     peer = new Peer("host", 6969); | ||||
| 
 | ||||
|     MockBtContextHandle btContext = new MockBtContext(); | ||||
|     btContext->setInfoHash((const unsigned char*)"12345678901234567890"); | ||||
|  |  | |||
|  | @ -98,7 +98,7 @@ public: | |||
|     BtRegistry::registerPieceStorage(btContext->getInfoHashAsString(), | ||||
| 				     pieceStorage); | ||||
| 
 | ||||
|     peer = new Peer("host", 6969, btContext->getPieceLength(), btContext->getTotalLength()); | ||||
|     peer = new Peer("host", 6969); | ||||
| 
 | ||||
|     BtRegistry::registerPeerObjectCluster(btContext->getInfoHashAsString(), | ||||
| 					  new PeerObjectCluster()); | ||||
|  |  | |||
|  | @ -60,7 +60,7 @@ void BtUnchokeMessageTest::testGetMessage() { | |||
| } | ||||
| 
 | ||||
| void BtUnchokeMessageTest::testDoReceivedAction() { | ||||
|   PeerHandle peer = new Peer("host", 6969, 16*1024, 256*1024); | ||||
|   PeerHandle peer = new Peer("host", 6969); | ||||
|   peer->peerChoking = true; | ||||
|   BtUnchokeMessage msg; | ||||
|   msg.setPeer(peer); | ||||
|  | @ -71,7 +71,7 @@ void BtUnchokeMessageTest::testDoReceivedAction() { | |||
| } | ||||
| 
 | ||||
| void BtUnchokeMessageTest::testOnSendComplete() { | ||||
|   PeerHandle peer = new Peer("host", 6969, 16*1024, 256*1024); | ||||
|   PeerHandle peer = new Peer("host", 6969); | ||||
|   peer->amChoking = true; | ||||
|   BtUnchokeMessage msg; | ||||
|   msg.setPeer(peer); | ||||
|  |  | |||
|  | @ -129,9 +129,7 @@ public: | |||
|   void setUp() { | ||||
|     btContext = new DefaultBtContext(); | ||||
|     btContext->load("test.torrent"); | ||||
|     peer = new Peer("192.168.0.1", 6969, | ||||
| 		    btContext->getPieceLength(), | ||||
| 		    btContext->getTotalLength());     | ||||
|     peer = new Peer("192.168.0.1", 6969); | ||||
|     peerStorage = new MockPeerStorage(); | ||||
|     pieceStorage = new MockPieceStorage(); | ||||
|     BtRegistry::unregisterAll(); | ||||
|  |  | |||
|  | @ -27,7 +27,7 @@ public: | |||
|     btContext->setInfoHash(infohash); | ||||
|     _btContext = btContext; | ||||
| 
 | ||||
|     _peer = new Peer("192.168.0.1", 6969, 16*1024, 256*1024); | ||||
|     _peer = new Peer("192.168.0.1", 6969); | ||||
|     _peer->setExtendedMessagingEnabled(true); | ||||
| 
 | ||||
|     MockExtensionMessageFactoryHandle exmsgFactory = new MockExtensionMessageFactory(); | ||||
|  |  | |||
|  | @ -84,7 +84,7 @@ public: | |||
|     BtRegistry::registerPieceStorage(btContext->getInfoHashAsString(), | ||||
| 				     new MockPieceStorage()); | ||||
| 
 | ||||
|     PeerHandle peer = new Peer("host", 6969, btContext->getPieceLength(), btContext->getTotalLength()); | ||||
|     PeerHandle peer = new Peer("host", 6969); | ||||
| 
 | ||||
|     BtRegistry::registerPeerObjectCluster(btContext->getInfoHashAsString(), | ||||
| 					  new PeerObjectCluster()); | ||||
|  |  | |||
|  | @ -35,7 +35,7 @@ public: | |||
|     BtRegistry::registerBtRuntime(_btContext->getInfoHashAsString(), | ||||
| 				  btRuntime); | ||||
| 
 | ||||
|     _peer = new Peer("192.168.0.1", 6969, 16*1024, 256*1024); | ||||
|     _peer = new Peer("192.168.0.1", 6969); | ||||
|     _peer->setExtension("ut_pex", 1); | ||||
|   } | ||||
| 
 | ||||
|  |  | |||
|  | @ -54,8 +54,8 @@ void DefaultPeerStorageTest::testCountPeer() { | |||
|   CPPUNIT_ASSERT_EQUAL((int32_t)0, | ||||
| 		       ps.countPeer()); | ||||
| 
 | ||||
|   PeerHandle peer(new Peer("192.168.0.1", 6889, btContext->getPieceLength(), | ||||
| 			   btContext->getTotalLength())); | ||||
|   PeerHandle peer(new Peer("192.168.0.1", 6889)); | ||||
| 
 | ||||
|   ps.addPeer(peer); | ||||
|   CPPUNIT_ASSERT_EQUAL((int32_t)1, | ||||
| 		       ps.countPeer()); | ||||
|  | @ -64,12 +64,9 @@ void DefaultPeerStorageTest::testCountPeer() { | |||
| void DefaultPeerStorageTest::testDeleteUnusedPeer() { | ||||
|   DefaultPeerStorage ps(btContext, option); | ||||
| 
 | ||||
|   PeerHandle peer1(new Peer("192.168.0.1", 6889, btContext->getPieceLength(), | ||||
| 			   btContext->getTotalLength())); | ||||
|   PeerHandle peer2(new Peer("192.168.0.2", 6889, btContext->getPieceLength(), | ||||
| 			   btContext->getTotalLength())); | ||||
|   PeerHandle peer3(new Peer("192.168.0.3", 6889, btContext->getPieceLength(), | ||||
| 			   btContext->getTotalLength())); | ||||
|   PeerHandle peer1(new Peer("192.168.0.1", 6889)); | ||||
|   PeerHandle peer2(new Peer("192.168.0.2", 6889)); | ||||
|   PeerHandle peer3(new Peer("192.168.0.3", 6889)); | ||||
| 
 | ||||
|   ps.addPeer(peer1); | ||||
|   ps.addPeer(peer2); | ||||
|  | @ -98,12 +95,9 @@ void DefaultPeerStorageTest::testDeleteUnusedPeer() { | |||
| void DefaultPeerStorageTest::testAddPeer() { | ||||
|   DefaultPeerStorage ps(btContext, option); | ||||
| 
 | ||||
|   PeerHandle peer1(new Peer("192.168.0.1", 6889, btContext->getPieceLength(), | ||||
| 			   btContext->getTotalLength())); | ||||
|   PeerHandle peer2(new Peer("192.168.0.2", 6889, btContext->getPieceLength(), | ||||
| 			   btContext->getTotalLength())); | ||||
|   PeerHandle peer3(new Peer("192.168.0.3", 6889, btContext->getPieceLength(), | ||||
| 			   btContext->getTotalLength())); | ||||
|   PeerHandle peer1(new Peer("192.168.0.1", 6889)); | ||||
|   PeerHandle peer2(new Peer("192.168.0.2", 6889)); | ||||
|   PeerHandle peer3(new Peer("192.168.0.3", 6889)); | ||||
| 
 | ||||
|   ps.addPeer(peer1); | ||||
|   ps.addPeer(peer2); | ||||
|  | @ -118,15 +112,14 @@ void DefaultPeerStorageTest::testAddPeer() { | |||
| 
 | ||||
|   ps.setMaxPeerListSize(3); | ||||
| 
 | ||||
|   PeerHandle peer4(new Peer("192.168.0.4", 6889, btContext->getPieceLength(), | ||||
| 			    btContext->getTotalLength())); | ||||
|   PeerHandle peer4(new Peer("192.168.0.4", 6889)); | ||||
| 
 | ||||
|   CPPUNIT_ASSERT(ps.addPeer(peer4)); | ||||
|   // peer1 was deleted.
 | ||||
|   CPPUNIT_ASSERT_EQUAL((int32_t)3, ps.countPeer()); | ||||
|    | ||||
|   PeerHandle peer5(new Peer("192.168.0.4", 0, btContext->getPieceLength(), | ||||
| 			    btContext->getTotalLength())); | ||||
|   PeerHandle peer5(new Peer("192.168.0.4", 0)); | ||||
| 
 | ||||
|   peer5->port = 6889; | ||||
| 
 | ||||
|   // this returns false because the peer which has same ip and port has already added
 | ||||
|  | @ -137,8 +130,7 @@ void DefaultPeerStorageTest::testGetPeer() { | |||
|   DefaultPeerStorage ps(btContext, option); | ||||
|   ps.setBtRuntime(btRuntime); | ||||
| 
 | ||||
|   PeerHandle peer1(new Peer("192.168.0.1", 6889, btContext->getPieceLength(), | ||||
| 			   btContext->getTotalLength())); | ||||
|   PeerHandle peer1(new Peer("192.168.0.1", 6889)); | ||||
| 
 | ||||
|   ps.addPeer(peer1); | ||||
| 
 | ||||
|  | @ -161,8 +153,7 @@ void DefaultPeerStorageTest::testIsPeerAvailable() { | |||
| 
 | ||||
|   CPPUNIT_ASSERT_EQUAL(false, ps.isPeerAvailable()); | ||||
| 
 | ||||
|   PeerHandle peer1(new Peer("192.168.0.1", 6889, btContext->getPieceLength(), | ||||
| 			   btContext->getTotalLength())); | ||||
|   PeerHandle peer1(new Peer("192.168.0.1", 6889)); | ||||
| 
 | ||||
|   ps.addPeer(peer1); | ||||
| 
 | ||||
|  | @ -184,8 +175,7 @@ void DefaultPeerStorageTest::testActivatePeer() { | |||
| 
 | ||||
|   CPPUNIT_ASSERT_EQUAL((size_t)0, ps.getActivePeers().size()); | ||||
| 
 | ||||
|   PeerHandle peer1(new Peer("192.168.0.1", 6889, btContext->getPieceLength(), | ||||
| 			   btContext->getTotalLength())); | ||||
|   PeerHandle peer1(new Peer("192.168.0.1", 6889)); | ||||
| 
 | ||||
|   ps.addPeer(peer1); | ||||
| 
 | ||||
|  | @ -205,15 +195,12 @@ void DefaultPeerStorageTest::testReturnPeer() | |||
| { | ||||
|   DefaultPeerStorage ps(btContext, option); | ||||
| 
 | ||||
|   PeerHandle peer1(new Peer("192.168.0.1", 6889, btContext->getPieceLength(), | ||||
| 			   btContext->getTotalLength())); | ||||
|   PeerHandle peer2(new Peer("192.168.0.2", 6889, btContext->getPieceLength(), | ||||
| 			   btContext->getTotalLength())); | ||||
|   PeerHandle peer1(new Peer("192.168.0.1", 6889)); | ||||
|   PeerHandle peer2(new Peer("192.168.0.2", 6889)); | ||||
|   ps.addPeer(peer1); | ||||
|   ps.addPeer(peer2); | ||||
| 
 | ||||
|   PeerHandle peer3(new Peer("192.168.0.3", 0, btContext->getPieceLength(), | ||||
| 			   btContext->getTotalLength()));   | ||||
|   PeerHandle peer3(new Peer("192.168.0.3", 0)); | ||||
|   ps.addPeer(peer3); | ||||
| 
 | ||||
|   ps.returnPeer(peer2); | ||||
|  |  | |||
|  | @ -41,9 +41,9 @@ public: | |||
|   void setUp() { | ||||
|     btContext = new DefaultBtContext(); | ||||
|     btContext->load("test.torrent"); | ||||
|     peer = PeerHandle(new Peer("192.168.0.1", 6889, | ||||
| 			       btContext->getPieceLength(), | ||||
| 			       btContext->getTotalLength())); | ||||
|     peer = new Peer("192.168.0.1", 6889); | ||||
|     peer->allocateBitfield(btContext->getPieceLength(), | ||||
| 			   btContext->getTotalLength()); | ||||
|     option = new Option(); | ||||
|   } | ||||
| 
 | ||||
|  |  | |||
|  | @ -70,7 +70,7 @@ void HandshakeExtensionMessageTest::testToString() | |||
| 
 | ||||
| void HandshakeExtensionMessageTest::testDoReceivedAction() | ||||
| { | ||||
|   PeerHandle peer = new Peer("192.168.0.1", 0, 1, 1); | ||||
|   PeerHandle peer = new Peer("192.168.0.1", 0); | ||||
|   HandshakeExtensionMessage msg; | ||||
|   msg.setClientVersion("aria2"); | ||||
|   msg.setTCPPort(6889); | ||||
|  |  | |||
|  | @ -16,7 +16,7 @@ public: | |||
|   PeerTest():peer(0) {} | ||||
| 
 | ||||
|   void setUp() { | ||||
|     peer = new Peer("localhost", 6969, 16*1024, 256*1024*1024); | ||||
|     peer = new Peer("localhost", 6969); | ||||
|   } | ||||
| 
 | ||||
|   void testPeerAllowedIndexSet(); | ||||
|  |  | |||
|  | @ -1,191 +0,0 @@ | |||
| #include "TorrentMan.h" | ||||
| #include <string> | ||||
| #include <cppunit/extensions/HelperMacros.h> | ||||
| 
 | ||||
| using namespace std; | ||||
| 
 | ||||
| class TorrentManTest:public CppUnit::TestFixture { | ||||
| 
 | ||||
|   CPPUNIT_TEST_SUITE(TorrentManTest); | ||||
|   /*
 | ||||
|   CPPUNIT_TEST(testUpdatePeers); | ||||
|   //CPPUNIT_TEST(testUpdatePeer);
 | ||||
|   CPPUNIT_TEST(testGetPeer); | ||||
|   CPPUNIT_TEST(testGetMissingPiece); | ||||
|   CPPUNIT_TEST(testCancelPiece); | ||||
|   CPPUNIT_TEST(testAddPeer); | ||||
|   */ | ||||
|   CPPUNIT_TEST_SUITE_END(); | ||||
| private: | ||||
| 
 | ||||
| public: | ||||
|   void setUp() { | ||||
|   } | ||||
| 
 | ||||
|   void testUpdatePeers(); | ||||
|   //void testUpdatePeer();
 | ||||
|   void testGetPeer(); | ||||
|   void testGetMissingPiece(); | ||||
|   void testCancelPiece(); | ||||
|   void testAddPeer(); | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| CPPUNIT_TEST_SUITE_REGISTRATION( TorrentManTest ); | ||||
| 
 | ||||
| Peers createPeers() { | ||||
|   Peers peers; | ||||
|   Peer* peer1 = new Peer("192.168.0.1", 6881, 512*1024, 5242870); | ||||
|   peer1->entryId = 1; | ||||
|   Peer* peer2 = new Peer("192.168.0.2", 6881, 512*1024, 5242870); | ||||
|   peer2->entryId = 2; | ||||
|   Peer* peer3 = new Peer("192.168.0.3", 6881, 512*1024, 5242870); | ||||
|   peer3->entryId = 3; | ||||
|   peers.push_back(peer1); | ||||
|   peers.push_back(peer2); | ||||
|   peers.push_back(peer3); | ||||
|   return peers; | ||||
| } | ||||
| /*
 | ||||
| void TorrentManTest::testUpdatePeers() { | ||||
|   TorrentMan tm; | ||||
|   Peers peers = createPeers(); | ||||
|   tm.updatePeers(peers); | ||||
|   const Peers& peersGot = tm.getPeers(); | ||||
|   Peers::const_iterator itr = peersGot.begin(); | ||||
|   CPPUNIT_ASSERT_EQUAL(string("192.168.0.1"), (*itr)->ipaddr); | ||||
|   itr++; | ||||
|   CPPUNIT_ASSERT_EQUAL(string("192.168.0.2"), (*itr)->ipaddr); | ||||
|   itr++; | ||||
|   CPPUNIT_ASSERT_EQUAL(string("192.168.0.3"), (*itr)->ipaddr); | ||||
|   itr++; | ||||
| } | ||||
| */ | ||||
| /*
 | ||||
| void TorrentManTest::testUpdatePeer() { | ||||
|   TorrentMan tm; | ||||
|   Peers peers = createPeers(); | ||||
|   tm.updatePeers(peers); | ||||
|   Peer* peer = tm.getPeer(1); | ||||
|   peer->amChocking = true; | ||||
|   peer->amInterested = true; | ||||
|   tm.updatePeer(peer); | ||||
|    | ||||
|   Peers::const_iterator itr = tm.getPeers().begin(); | ||||
|   CPPUNIT_ASSERT_EQUAL(3, (int)tm.getPeers().size()); | ||||
|   CPPUNIT_ASSERT_EQUAL(string("192.168.0.1"), itr->ipaddr); | ||||
|   CPPUNIT_ASSERT_EQUAL(true, itr->amChocking); | ||||
|   CPPUNIT_ASSERT_EQUAL(true, itr->amInterested); | ||||
|   CPPUNIT_ASSERT_EQUAL(1, itr->cuid); | ||||
|   itr++; | ||||
|   CPPUNIT_ASSERT_EQUAL(string("192.168.0.2"), itr->ipaddr); | ||||
|   CPPUNIT_ASSERT_EQUAL(false, itr->amChocking); | ||||
|   CPPUNIT_ASSERT_EQUAL(false, itr->amInterested); | ||||
|   CPPUNIT_ASSERT_EQUAL(0, itr->cuid); | ||||
|   itr++; | ||||
|   CPPUNIT_ASSERT_EQUAL(string("192.168.0.3"), itr->ipaddr); | ||||
|   CPPUNIT_ASSERT_EQUAL(false, itr->amChocking); | ||||
|   CPPUNIT_ASSERT_EQUAL(false, itr->amInterested); | ||||
|   CPPUNIT_ASSERT_EQUAL(0, itr->cuid); | ||||
|   itr++; | ||||
| } | ||||
| */ | ||||
| /*
 | ||||
| void TorrentManTest::testGetPeer() { | ||||
|   TorrentMan tm; | ||||
|   Peers peers = createPeers(); | ||||
|   tm.updatePeers(peers); | ||||
|   CPPUNIT_ASSERT(tm.getPeer() != Peer::nullPeer); | ||||
|   CPPUNIT_ASSERT(tm.getPeer() != Peer::nullPeer); | ||||
|   CPPUNIT_ASSERT(tm.getPeer() != Peer::nullPeer); | ||||
|   CPPUNIT_ASSERT(tm.getPeer() == Peer::nullPeer); | ||||
| } | ||||
| 
 | ||||
| void TorrentManTest::testGetMissingPiece() { | ||||
|   TorrentMan tm; | ||||
|   tm.pieceLength = 512*1024; | ||||
|   tm.pieces = 10; | ||||
|   tm.totalSize = 5242870; | ||||
|   tm.initBitfield(); | ||||
| 
 | ||||
|   unsigned char peerBitfield[2] = { 0xff, 0xff }; | ||||
|   Piece piece1 = tm.getMissingPiece(peerBitfield, 2); | ||||
|   CPPUNIT_ASSERT_EQUAL(0, piece1.getIndex()); | ||||
|   CPPUNIT_ASSERT_EQUAL(512*1024, piece1.getLength()); | ||||
| 
 | ||||
|   Piece piece2 = tm.getMissingPiece(peerBitfield, 2); | ||||
|   CPPUNIT_ASSERT_EQUAL(1, piece2.getIndex()); | ||||
|   CPPUNIT_ASSERT_EQUAL(512*1024, piece2.getLength()); | ||||
|   | ||||
|   tm.completePiece(piece1); | ||||
| 
 | ||||
|   int len = tm.getBitfieldLength(); | ||||
|   const unsigned char* bitfield = tm.getBitfield(); | ||||
|   CPPUNIT_ASSERT_EQUAL(2, len); | ||||
|   CPPUNIT_ASSERT(bitfield[0]&(1 << 7)); | ||||
|   for(int i = 0; i < 7; i++) { | ||||
|     CPPUNIT_ASSERT(!(bitfield[0]&(1 << i))); | ||||
|   } | ||||
| 
 | ||||
|   tm.completePiece(piece2); | ||||
|   bitfield = tm.getBitfield(); | ||||
|   CPPUNIT_ASSERT_EQUAL(2, len); | ||||
|   CPPUNIT_ASSERT(bitfield[0]&(1 << 7)); | ||||
|   CPPUNIT_ASSERT(bitfield[0]&(1 << 6)); | ||||
|   for(int i = 0; i < 6; i++) { | ||||
|     CPPUNIT_ASSERT(!(bitfield[0]&(1 << i))); | ||||
|   } | ||||
| 
 | ||||
|   for(int i = 0; i < 8; i++) { | ||||
|     CPPUNIT_ASSERT(!IS_NULL_PIECE(tm.getMissingPiece(peerBitfield, 2))); | ||||
|   } | ||||
|   CPPUNIT_ASSERT(IS_NULL_PIECE(tm.getMissingPiece(peerBitfield, 2))); | ||||
| } | ||||
| 
 | ||||
| void TorrentManTest::testCancelPiece() { | ||||
|   TorrentMan tm; | ||||
|   tm.pieceLength = 512*1024; | ||||
|   tm.pieces = 10; | ||||
|   tm.totalSize = 5242870; | ||||
|   tm.initBitfield(); | ||||
| 
 | ||||
|   unsigned char peerBitfield[2] = { 0xff, 0xff }; | ||||
|   Piece piece = tm.getMissingPiece(peerBitfield, 2); | ||||
|   CPPUNIT_ASSERT_EQUAL(0, piece.getIndex()); | ||||
|   CPPUNIT_ASSERT_EQUAL(512*1024, piece.getLength()); | ||||
| 
 | ||||
|   tm.cancelPiece(piece); | ||||
|   int len = tm.getBitfieldLength(); | ||||
|   const unsigned char* bitfield = tm.getBitfield(); | ||||
|   for(int i = 0; i < 8; i++) { | ||||
|     CPPUNIT_ASSERT(!(bitfield[0]&(1 << i))); | ||||
|   }   | ||||
| } | ||||
| 
 | ||||
| void TorrentManTest::testAddPeer() { | ||||
|   TorrentMan tm; | ||||
|   Peers peers = createPeers(); | ||||
|   tm.updatePeers(peers); | ||||
| 
 | ||||
|   // try to add already added peer
 | ||||
|   Peer* dupPeer = new Peer("192.168.0.2", 6881); | ||||
|   CPPUNIT_ASSERT(!tm.addPeer(dupPeer)); | ||||
|   CPPUNIT_ASSERT_EQUAL(3, (int)tm.getPeers().size()); | ||||
| 
 | ||||
|   // duplicate flag on
 | ||||
|   CPPUNIT_ASSERT(tm.addPeer(dupPeer, true)); | ||||
|   CPPUNIT_ASSERT_EQUAL(4, (int)tm.getPeers().size()); | ||||
| 
 | ||||
|   // cannot add error peer even though duplicte flag turns on
 | ||||
|   dupPeer->error = 1; | ||||
|   Peer* dupPeer2 = new Peer("192.168.0.2", 6881); | ||||
|   CPPUNIT_ASSERT(!tm.addPeer(dupPeer2, true)); | ||||
|   CPPUNIT_ASSERT_EQUAL(4, (int)tm.getPeers().size()); | ||||
| 
 | ||||
|   // try to add new peer
 | ||||
|   Peer* newPeer = new Peer("10.1.0.1", 6881); | ||||
|   CPPUNIT_ASSERT(tm.addPeer(newPeer)); | ||||
|   CPPUNIT_ASSERT_EQUAL(5, (int)tm.getPeers().size()); | ||||
| 
 | ||||
| } | ||||
| */ | ||||
|  | @ -67,14 +67,15 @@ void UTPexExtensionMessageTest::testGetExtensionName() | |||
| void UTPexExtensionMessageTest::testGetBencodedData() | ||||
| { | ||||
|   UTPexExtensionMessage msg(1); | ||||
|   PeerHandle p1 = new Peer("192.168.0.1", 6881, 1, 1); | ||||
|   PeerHandle p1 = new Peer("192.168.0.1", 6881); | ||||
|   p1->allocateBitfield(256*1024, 1024*1024); | ||||
|   p1->setAllBitfield(); | ||||
|   msg.addFreshPeer(p1);// added seeder, check add.f flag
 | ||||
|   PeerHandle p2 = new Peer("10.1.1.2", 9999, 1, 1); | ||||
|   PeerHandle p2 = new Peer("10.1.1.2", 9999); | ||||
|   msg.addFreshPeer(p2); | ||||
|   PeerHandle p3 = new Peer("192.168.0.2", 6882, 1, 1); | ||||
|   PeerHandle p3 = new Peer("192.168.0.2", 6882); | ||||
|   msg.addDroppedPeer(p3); | ||||
|   PeerHandle p4 = new Peer("10.1.1.3", 10000, 1, 1); | ||||
|   PeerHandle p4 = new Peer("10.1.1.3", 10000); | ||||
|   msg.addDroppedPeer(p4); | ||||
| 
 | ||||
|   char c1[6]; | ||||
|  | @ -99,14 +100,15 @@ void UTPexExtensionMessageTest::testGetBencodedData() | |||
| void UTPexExtensionMessageTest::testToString() | ||||
| { | ||||
|   UTPexExtensionMessage msg(1); | ||||
|   PeerHandle p1 = new Peer("192.168.0.1", 6881, 1, 1); | ||||
|   PeerHandle p1 = new Peer("192.168.0.1", 6881); | ||||
|   p1->allocateBitfield(256*1024, 1024*1024); | ||||
|   p1->setAllBitfield(); | ||||
|   msg.addFreshPeer(p1);// added seeder, check add.f flag
 | ||||
|   PeerHandle p2 = new Peer("10.1.1.2", 9999, 1, 1); | ||||
|   PeerHandle p2 = new Peer("10.1.1.2", 9999); | ||||
|   msg.addFreshPeer(p2); | ||||
|   PeerHandle p3 = new Peer("192.168.0.2", 6882, 1, 1); | ||||
|   PeerHandle p3 = new Peer("192.168.0.2", 6882); | ||||
|   msg.addDroppedPeer(p3); | ||||
|   PeerHandle p4 = new Peer("10.1.1.3", 10000, 1, 1); | ||||
|   PeerHandle p4 = new Peer("10.1.1.3", 10000); | ||||
|   msg.addDroppedPeer(p4); | ||||
|   CPPUNIT_ASSERT_EQUAL(string("ut_pex added=2, dropped=2"), msg.toString()); | ||||
| } | ||||
|  | @ -114,14 +116,15 @@ void UTPexExtensionMessageTest::testToString() | |||
| void UTPexExtensionMessageTest::testDoReceivedAction() | ||||
| { | ||||
|   UTPexExtensionMessage msg(1); | ||||
|   PeerHandle p1 = new Peer("192.168.0.1", 6881, 1, 1); | ||||
|   PeerHandle p1 = new Peer("192.168.0.1", 6881); | ||||
|   p1->allocateBitfield(256*1024, 1024*1024); | ||||
|   p1->setAllBitfield(); | ||||
|   msg.addFreshPeer(p1);// added seeder, check add.f flag
 | ||||
|   PeerHandle p2 = new Peer("10.1.1.2", 9999, 1, 1); | ||||
|   PeerHandle p2 = new Peer("10.1.1.2", 9999); | ||||
|   msg.addFreshPeer(p2); | ||||
|   PeerHandle p3 = new Peer("192.168.0.2", 6882, 1, 1); | ||||
|   PeerHandle p3 = new Peer("192.168.0.2", 6882); | ||||
|   msg.addDroppedPeer(p3); | ||||
|   PeerHandle p4 = new Peer("10.1.1.3", 10000, 1, 1); | ||||
|   PeerHandle p4 = new Peer("10.1.1.3", 10000); | ||||
|   msg.addDroppedPeer(p4); | ||||
|   msg.setBtContext(_btContext); | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Tatsuhiro Tsujikawa
						Tatsuhiro Tsujikawa