summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2007-12-26 14:26:55 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2007-12-26 14:26:55 +0000
commite39f7a7e9ce1e42e7a46332f664d6a6810ee55fa (patch)
tree602f80960c3538968b234725b4e7cdfb5c79ff4d
parenteed41706fc0e72c15b0509f6a93b03644cc06c59 (diff)
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
-rw-r--r--ChangeLog18
-rw-r--r--src/CompactPeerListProcessor.cc2
-rw-r--r--src/DefaultPeerListProcessor.cc3
-rw-r--r--src/Peer.cc49
-rw-r--r--src/Peer.h36
-rw-r--r--src/PeerInteractionCommand.cc2
-rw-r--r--src/PeerListenCommand.cc2
-rw-r--r--src/PeerReceiveHandshakeCommand.cc1
-rw-r--r--src/Piece.cc1
-rw-r--r--test/BtAllowedFastMessageTest.cc4
-rw-r--r--test/BtBitfieldMessageTest.cc3
-rw-r--r--test/BtCancelMessageTest.cc2
-rw-r--r--test/BtChokeMessageTest.cc4
-rw-r--r--test/BtExtendedMessageTest.cc2
-rw-r--r--test/BtHaveAllMessageTest.cc3
-rw-r--r--test/BtHaveMessageTest.cc3
-rw-r--r--test/BtHaveNoneMessageTest.cc2
-rw-r--r--test/BtInterestedMessageTest.cc4
-rw-r--r--test/BtNotInterestedMessageTest.cc4
-rw-r--r--test/BtPieceMessageTest.cc2
-rw-r--r--test/BtRejectMessageTest.cc2
-rw-r--r--test/BtRequestMessageTest.cc2
-rw-r--r--test/BtUnchokeMessageTest.cc4
-rw-r--r--test/DefaultBtMessageDispatcherTest.cc4
-rw-r--r--test/DefaultBtMessageFactoryTest.cc2
-rw-r--r--test/DefaultBtRequestFactoryTest.cc2
-rw-r--r--test/DefaultExtensionMessageFactoryTest.cc2
-rw-r--r--test/DefaultPeerStorageTest.cc47
-rw-r--r--test/DefaultPieceStorageTest.cc6
-rw-r--r--test/HandshakeExtensionMessageTest.cc2
-rw-r--r--test/PeerTest.cc2
-rw-r--r--test/TorrentManTest.cc191
-rw-r--r--test/UTPexExtensionMessageTest.cc27
33 files changed, 145 insertions, 295 deletions
diff --git a/ChangeLog b/ChangeLog
index c42aea83..f14a21e8 100644
--- a/ChangeLog
+++ b/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
diff --git a/src/CompactPeerListProcessor.cc b/src/CompactPeerListProcessor.cc
index b98b5da8..d51bc9aa 100644
--- a/src/CompactPeerListProcessor.cc
+++ b/src/CompactPeerListProcessor.cc
@@ -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);
}
}
diff --git a/src/DefaultPeerListProcessor.cc b/src/DefaultPeerListProcessor.cc
index e731be03..ea8eeaca 100644
--- a/src/DefaultPeerListProcessor.cc
+++ b/src/DefaultPeerListProcessor.cc
@@ -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;
diff --git a/src/Peer.cc b/src/Peer.cc
index 10d1a27d..51245cd8 100644
--- a/src/Peer.cc
+++ b/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)
diff --git a/src/Peer.h b/src/Peer.h
index 44dd68c9..407bc7a7 100644
--- a/src/Peer.h
+++ b/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 {
+ assert(_bitfield);
+ return _bitfield->getBitfield();
+ }
+
+ int32_t getBitfieldLength() const {
+ assert(_bitfield);
+ return _bitfield->getBitfieldLength();
}
- const unsigned char* getBitfield() const { return bitfield->getBitfield(); }
- int32_t getBitfieldLength() const { 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
{
diff --git a/src/PeerInteractionCommand.cc b/src/PeerInteractionCommand.cc
index 677fdc4f..2cd64a27 100644
--- a/src/PeerInteractionCommand.cc
+++ b/src/PeerInteractionCommand.cc
@@ -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());
diff --git a/src/PeerListenCommand.cc b/src/PeerListenCommand.cc
index c4b61003..188040b4 100644
--- a/src/PeerListenCommand.cc
+++ b/src/PeerListenCommand.cc
@@ -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);
diff --git a/src/PeerReceiveHandshakeCommand.cc b/src/PeerReceiveHandshakeCommand.cc
index b1282e3f..fc6db478 100644
--- a/src/PeerReceiveHandshakeCommand.cc
+++ b/src/PeerReceiveHandshakeCommand.cc
@@ -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;
diff --git a/src/Piece.cc b/src/Piece.cc
index cabaa8db..4ed9fab7 100644
--- a/src/Piece.cc
+++ b/src/Piece.cc
@@ -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);
diff --git a/test/BtAllowedFastMessageTest.cc b/test/BtAllowedFastMessageTest.cc
index 6a04f2e0..449c6b3c 100644
--- a/test/BtAllowedFastMessageTest.cc
+++ b/test/BtAllowedFastMessageTest.cc
@@ -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));
diff --git a/test/BtBitfieldMessageTest.cc b/test/BtBitfieldMessageTest.cc
index 891803a0..da28563f 100644
--- a/test/BtBitfieldMessageTest.cc
+++ b/test/BtBitfieldMessageTest.cc
@@ -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 };
diff --git a/test/BtCancelMessageTest.cc b/test/BtCancelMessageTest.cc
index 58f4be7b..dee1e14c 100644
--- a/test/BtCancelMessageTest.cc
+++ b/test/BtCancelMessageTest.cc
@@ -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(),
diff --git a/test/BtChokeMessageTest.cc b/test/BtChokeMessageTest.cc
index 1917709e..432c22fc 100644
--- a/test/BtChokeMessageTest.cc
+++ b/test/BtChokeMessageTest.cc
@@ -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);
diff --git a/test/BtExtendedMessageTest.cc b/test/BtExtendedMessageTest.cc
index 43c1ca94..34ee594e 100644
--- a/test/BtExtendedMessageTest.cc
+++ b/test/BtExtendedMessageTest.cc
@@ -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];
diff --git a/test/BtHaveAllMessageTest.cc b/test/BtHaveAllMessageTest.cc
index 80180c71..362735f9 100644
--- a/test/BtHaveAllMessageTest.cc
+++ b/test/BtHaveAllMessageTest.cc
@@ -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);
diff --git a/test/BtHaveMessageTest.cc b/test/BtHaveMessageTest.cc
index 1b576716..e794550c 100644
--- a/test/BtHaveMessageTest.cc
+++ b/test/BtHaveMessageTest.cc
@@ -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);
diff --git a/test/BtHaveNoneMessageTest.cc b/test/BtHaveNoneMessageTest.cc
index f0eb00ba..41d13cce 100644
--- a/test/BtHaveNoneMessageTest.cc
+++ b/test/BtHaveNoneMessageTest.cc
@@ -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();
diff --git a/test/BtInterestedMessageTest.cc b/test/BtInterestedMessageTest.cc
index bff4eec5..372cb2c0 100644
--- a/test/BtInterestedMessageTest.cc
+++ b/test/BtInterestedMessageTest.cc
@@ -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();
diff --git a/test/BtNotInterestedMessageTest.cc b/test/BtNotInterestedMessageTest.cc
index abf75eea..6b33640a 100644
--- a/test/BtNotInterestedMessageTest.cc
+++ b/test/BtNotInterestedMessageTest.cc
@@ -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);
diff --git a/test/BtPieceMessageTest.cc b/test/BtPieceMessageTest.cc
index 22f78b1b..f82dc6fe 100644
--- a/test/BtPieceMessageTest.cc
+++ b/test/BtPieceMessageTest.cc
@@ -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());
diff --git a/test/BtRejectMessageTest.cc b/test/BtRejectMessageTest.cc
index ed46ea6f..73bfb163 100644
--- a/test/BtRejectMessageTest.cc
+++ b/test/BtRejectMessageTest.cc
@@ -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");
diff --git a/test/BtRequestMessageTest.cc b/test/BtRequestMessageTest.cc
index 06925f5d..d8ec67e2 100644
--- a/test/BtRequestMessageTest.cc
+++ b/test/BtRequestMessageTest.cc
@@ -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());
diff --git a/test/BtUnchokeMessageTest.cc b/test/BtUnchokeMessageTest.cc
index da6cdd5b..281e67f8 100644
--- a/test/BtUnchokeMessageTest.cc
+++ b/test/BtUnchokeMessageTest.cc
@@ -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);
diff --git a/test/DefaultBtMessageDispatcherTest.cc b/test/DefaultBtMessageDispatcherTest.cc
index f21ae2e5..ef9b36d5 100644
--- a/test/DefaultBtMessageDispatcherTest.cc
+++ b/test/DefaultBtMessageDispatcherTest.cc
@@ -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();
diff --git a/test/DefaultBtMessageFactoryTest.cc b/test/DefaultBtMessageFactoryTest.cc
index 95c8de66..31f2232a 100644
--- a/test/DefaultBtMessageFactoryTest.cc
+++ b/test/DefaultBtMessageFactoryTest.cc
@@ -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();
diff --git a/test/DefaultBtRequestFactoryTest.cc b/test/DefaultBtRequestFactoryTest.cc
index a3b76e91..33910d56 100644
--- a/test/DefaultBtRequestFactoryTest.cc
+++ b/test/DefaultBtRequestFactoryTest.cc
@@ -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());
diff --git a/test/DefaultExtensionMessageFactoryTest.cc b/test/DefaultExtensionMessageFactoryTest.cc
index 0c222543..3dfca2d2 100644
--- a/test/DefaultExtensionMessageFactoryTest.cc
+++ b/test/DefaultExtensionMessageFactoryTest.cc
@@ -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);
}
diff --git a/test/DefaultPeerStorageTest.cc b/test/DefaultPeerStorageTest.cc
index fd4f4576..1e008614 100644
--- a/test/DefaultPeerStorageTest.cc
+++ b/test/DefaultPeerStorageTest.cc
@@ -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);
diff --git a/test/DefaultPieceStorageTest.cc b/test/DefaultPieceStorageTest.cc
index fb297cc8..a3ad533e 100644
--- a/test/DefaultPieceStorageTest.cc
+++ b/test/DefaultPieceStorageTest.cc
@@ -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();
}
diff --git a/test/HandshakeExtensionMessageTest.cc b/test/HandshakeExtensionMessageTest.cc
index 37d43b39..62543c31 100644
--- a/test/HandshakeExtensionMessageTest.cc
+++ b/test/HandshakeExtensionMessageTest.cc
@@ -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);
diff --git a/test/PeerTest.cc b/test/PeerTest.cc
index 6904a1b5..0443525d 100644
--- a/test/PeerTest.cc
+++ b/test/PeerTest.cc
@@ -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();
diff --git a/test/TorrentManTest.cc b/test/TorrentManTest.cc
deleted file mode 100644
index 0ee3dd4b..00000000
--- a/test/TorrentManTest.cc
+++ /dev/null
@@ -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());
-
-}
-*/
diff --git a/test/UTPexExtensionMessageTest.cc b/test/UTPexExtensionMessageTest.cc
index 1b837802..b9c741f2 100644
--- a/test/UTPexExtensionMessageTest.cc
+++ b/test/UTPexExtensionMessageTest.cc
@@ -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);