summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2007-04-05 16:47:59 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2007-04-05 16:47:59 +0000
commitdd37b7be0aa5d818636530bc60f894893fd8f7a4 (patch)
tree2038ad92cc743f7e57f66bf19c4d7191c2bb6284 /test
parentf030408d8e657fe1a5acc5f642f9e7561b23a753 (diff)
2007-04-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
* src/PeerAbstractCommand.cc (onAbort): Call PeerStorage::returnPeer() * src/DefaultPeerStorage.h, src/DefaultPeerStorage.cc (incomingPeers): New variable. (addIncomingPeer): New function. (returnPeer): New function. (onErasingPeer): New function. (addPeer): push_back -> push_front (getActivePeers): Rewritten. (calculateStat): Rewritten. * src/PeerStorage.h (TransferStat::copy): New function. (TransferStat::TransferStat): New function. (TransferStat::operator=): New function. (addIncomingPeer): New function. (returnPeer): New function. * src/PeerListenCommand.cc (execute): Use PeerStorage::addIncomingPeer() instead of Peer::addPeer().
Diffstat (limited to 'test')
-rw-r--r--test/DefaultPeerStorageTest.cc66
-rw-r--r--test/Makefile.am4
-rw-r--r--test/Makefile.in10
3 files changed, 71 insertions, 9 deletions
diff --git a/test/DefaultPeerStorageTest.cc b/test/DefaultPeerStorageTest.cc
index e06bc5e9..967077a6 100644
--- a/test/DefaultPeerStorageTest.cc
+++ b/test/DefaultPeerStorageTest.cc
@@ -16,6 +16,9 @@ class DefaultPeerStorageTest:public CppUnit::TestFixture {
CPPUNIT_TEST(testIsPeerAvailable);
CPPUNIT_TEST(testActivatePeer);
CPPUNIT_TEST(testCalculateStat);
+ CPPUNIT_TEST(testAddIncomingPeer);
+ CPPUNIT_TEST(testReturnPeer);
+ CPPUNIT_TEST(testOnErasingPeer);
CPPUNIT_TEST_SUITE_END();
private:
BtContextHandle btContext;
@@ -38,6 +41,9 @@ public:
void testIsPeerAvailable();
void testActivatePeer();
void testCalculateStat();
+ void testAddIncomingPeer();
+ void testReturnPeer();
+ void testOnErasingPeer();
};
@@ -118,13 +124,25 @@ void DefaultPeerStorageTest::testAddPeer() {
btContext->getTotalLength()));
CPPUNIT_ASSERT(ps.addPeer(peer4));
- // peer3 was deleted.
+ // peer1 was deleted.
CPPUNIT_ASSERT_EQUAL(3, ps.countPeer());
peer4->startBadCondition();
+ PeerHandle peer5(new Peer("192.168.0.4", 6889, btContext->getPieceLength(),
+ btContext->getTotalLength()));
+
// this returns false, because peer4 in the container has error.
- CPPUNIT_ASSERT_EQUAL(false, ps.addPeer(peer4));
+ CPPUNIT_ASSERT_EQUAL(false, ps.addPeer(peer5));
+
+ peer3->cuid = 1;
+
+ PeerHandle peer6(new Peer("192.168.0.3", 6889, btContext->getPieceLength(),
+ btContext->getTotalLength()));
+
+ // this is false, because peer3's cuid is not zero
+ CPPUNIT_ASSERT_EQUAL(false, ps.addPeer(peer6));
+
}
void DefaultPeerStorageTest::testGetPeer() {
@@ -194,3 +212,47 @@ void DefaultPeerStorageTest::testActivatePeer() {
void DefaultPeerStorageTest::testCalculateStat() {
}
+
+
+void DefaultPeerStorageTest::testAddIncomingPeer()
+{
+ DefaultPeerStorage ps(btContext, option);
+
+ CPPUNIT_ASSERT(ps.addIncomingPeer(new Peer("192.168.0.1", 6889,
+ btContext->getPieceLength(),
+ btContext->getTotalLength())));
+
+ CPPUNIT_ASSERT_EQUAL((size_t)1, ps.getIncomingPeers().size());
+}
+
+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()));
+ ps.addPeer(peer1);
+ ps.addPeer(peer2);
+
+ PeerHandle peer3(new Peer("192.168.0.3", 6889, btContext->getPieceLength(),
+ btContext->getTotalLength()));
+
+ ps.addIncomingPeer(peer3);
+
+ CPPUNIT_ASSERT_EQUAL(string("192.168.0.2"),
+ ps.getPeers().front()->ipaddr);
+ ps.returnPeer(peer2);
+ CPPUNIT_ASSERT_EQUAL(string("192.168.0.1"),
+ ps.getPeers().front()->ipaddr);
+
+ ps.returnPeer(peer3);
+ CPPUNIT_ASSERT_EQUAL((size_t)0, ps.getIncomingPeers().size());
+
+}
+
+void DefaultPeerStorageTest::testOnErasingPeer()
+{
+ // test this
+}
diff --git a/test/Makefile.am b/test/Makefile.am
index e4912ee2..1723bb28 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -1,6 +1,8 @@
TESTS = aria2c
check_PROGRAMS = $(TESTS)
aria2c_SOURCES = AllTest.cc\
+ PeerTest.cc\
+ DefaultPeerStorageTest.cc\
RequestFactoryTest.cc\
NetrcAuthResolverTest.cc\
DefaultAuthResolverTest.cc\
@@ -41,13 +43,11 @@ aria2c_SOURCES = AllTest.cc\
TrackerWatcherCommandTest.cc\
DefaultBtContextTest.cc\
DefaultPieceStorageTest.cc\
- DefaultPeerStorageTest.cc\
DefaultBtAnnounceTest.cc\
BtRegistryTest.cc\
DefaultBtMessageDispatcherTest.cc\
MockPeerStorage.h\
DefaultBtRequestFactoryTest.cc\
- PeerTest.cc\
BtAllowedFastMessageTest.cc\
BtBitfieldMessageTest.cc\
BtCancelMessageTest.cc\
diff --git a/test/Makefile.in b/test/Makefile.in
index 6e368c23..e33b52e3 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -57,7 +57,8 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
am__EXEEXT_1 = aria2c$(EXEEXT)
-am_aria2c_OBJECTS = AllTest.$(OBJEXT) RequestFactoryTest.$(OBJEXT) \
+am_aria2c_OBJECTS = AllTest.$(OBJEXT) PeerTest.$(OBJEXT) \
+ DefaultPeerStorageTest.$(OBJEXT) RequestFactoryTest.$(OBJEXT) \
NetrcAuthResolverTest.$(OBJEXT) \
DefaultAuthResolverTest.$(OBJEXT) RequestTest.$(OBJEXT) \
HttpRequestTest.$(OBJEXT) UtilTest.$(OBJEXT) \
@@ -80,10 +81,9 @@ am_aria2c_OBJECTS = AllTest.$(OBJEXT) RequestFactoryTest.$(OBJEXT) \
AnnounceListTest.$(OBJEXT) TrackerWatcherCommandTest.$(OBJEXT) \
DefaultBtContextTest.$(OBJEXT) \
DefaultPieceStorageTest.$(OBJEXT) \
- DefaultPeerStorageTest.$(OBJEXT) \
DefaultBtAnnounceTest.$(OBJEXT) BtRegistryTest.$(OBJEXT) \
DefaultBtMessageDispatcherTest.$(OBJEXT) \
- DefaultBtRequestFactoryTest.$(OBJEXT) PeerTest.$(OBJEXT) \
+ DefaultBtRequestFactoryTest.$(OBJEXT) \
BtAllowedFastMessageTest.$(OBJEXT) \
BtBitfieldMessageTest.$(OBJEXT) BtCancelMessageTest.$(OBJEXT) \
BtChokeMessageTest.$(OBJEXT) BtHaveAllMessageTest.$(OBJEXT) \
@@ -262,6 +262,8 @@ sysconfdir = @sysconfdir@
target_alias = @target_alias@
TESTS = aria2c
aria2c_SOURCES = AllTest.cc\
+ PeerTest.cc\
+ DefaultPeerStorageTest.cc\
RequestFactoryTest.cc\
NetrcAuthResolverTest.cc\
DefaultAuthResolverTest.cc\
@@ -302,13 +304,11 @@ aria2c_SOURCES = AllTest.cc\
TrackerWatcherCommandTest.cc\
DefaultBtContextTest.cc\
DefaultPieceStorageTest.cc\
- DefaultPeerStorageTest.cc\
DefaultBtAnnounceTest.cc\
BtRegistryTest.cc\
DefaultBtMessageDispatcherTest.cc\
MockPeerStorage.h\
DefaultBtRequestFactoryTest.cc\
- PeerTest.cc\
BtAllowedFastMessageTest.cc\
BtBitfieldMessageTest.cc\
BtCancelMessageTest.cc\