diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2007-04-05 16:47:59 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2007-04-05 16:47:59 +0000 |
| commit | dd37b7be0aa5d818636530bc60f894893fd8f7a4 (patch) | |
| tree | 2038ad92cc743f7e57f66bf19c4d7191c2bb6284 /test | |
| parent | f030408d8e657fe1a5acc5f642f9e7561b23a753 (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.cc | 66 | ||||
| -rw-r--r-- | test/Makefile.am | 4 | ||||
| -rw-r--r-- | test/Makefile.in | 10 |
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\ |
