summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-06-17 11:43:29 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-06-17 11:43:29 +0000
commitdfe2f993454bea38614bf1ad70d12a7bec947e69 (patch)
treed9ade0f4c9a3a25ba478d92d4a7f20c55fc3a268 /test
parent09502fc3db5462a2a0ae096dc0d3985ca9a190b5 (diff)
2008-06-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Filled up pieces based on the number of missing blocks, rather than simplay the number of piece * block length. * src/BtRequestFactory.h * src/DefaultBtInteractive.cc * src/DefaultBtInteractive.h * src/DefaultBtRequestFactory.cc * src/DefaultBtRequestFactory.h * src/Piece.cc * src/Piece.h * test/BitfieldManTest.cc * test/DefaultBtRequestFactoryTest.cc * test/MockBtRequestFactory.h
Diffstat (limited to 'test')
-rw-r--r--test/BitfieldManTest.cc12
-rw-r--r--test/DefaultBtRequestFactoryTest.cc15
-rw-r--r--test/MockBtRequestFactory.h2
3 files changed, 26 insertions, 3 deletions
diff --git a/test/BitfieldManTest.cc b/test/BitfieldManTest.cc
index 2ab8e936..75f3ca22 100644
--- a/test/BitfieldManTest.cc
+++ b/test/BitfieldManTest.cc
@@ -26,6 +26,7 @@ class BitfieldManTest:public CppUnit::TestFixture {
CPPUNIT_TEST(testGetMissingIndex_noarg);
CPPUNIT_TEST(testGetMissingUnusedIndex_noarg);
CPPUNIT_TEST(testCountFilteredBlock);
+ CPPUNIT_TEST(testCountMissingBlock);
CPPUNIT_TEST_SUITE_END();
private:
SharedHandle<Randomizer> fixedNumberRandomizer;
@@ -59,6 +60,7 @@ public:
void testGetMissingUnusedLength();
void testSetBitRange();
void testCountFilteredBlock();
+ void testCountMissingBlock();
};
@@ -741,4 +743,14 @@ void BitfieldManTest::testCountFilteredBlock()
CPPUNIT_ASSERT_EQUAL((size_t)0, bt.countFilteredBlock());
}
+void BitfieldManTest::testCountMissingBlock()
+{
+ BitfieldMan bt(1024, 1024*10);
+ CPPUNIT_ASSERT_EQUAL((size_t)10, bt.countMissingBlock());
+ bt.setBit(1);
+ CPPUNIT_ASSERT_EQUAL((size_t)9, bt.countMissingBlock());
+ bt.setAllBit();
+ CPPUNIT_ASSERT_EQUAL((size_t)0, bt.countMissingBlock());
+}
+
} // namespace aria2
diff --git a/test/DefaultBtRequestFactoryTest.cc b/test/DefaultBtRequestFactoryTest.cc
index 3fae76c1..299b6f7d 100644
--- a/test/DefaultBtRequestFactoryTest.cc
+++ b/test/DefaultBtRequestFactoryTest.cc
@@ -123,9 +123,18 @@ public:
CPPUNIT_TEST_SUITE_REGISTRATION(DefaultBtRequestFactoryTest);
void DefaultBtRequestFactoryTest::testAddTargetPiece() {
- SharedHandle<Piece> piece(new Piece(0, 16*1024));
- btRequestFactory->addTargetPiece(piece);
- CPPUNIT_ASSERT_EQUAL((size_t)1, btRequestFactory->countTargetPiece());
+ {
+ SharedHandle<Piece> piece(new Piece(0, 16*1024*10));
+ btRequestFactory->addTargetPiece(piece);
+ CPPUNIT_ASSERT_EQUAL((size_t)1, btRequestFactory->countTargetPiece());
+ }
+ {
+ SharedHandle<Piece> piece(new Piece(1, 16*1024*9));
+ piece->completeBlock(0);
+ btRequestFactory->addTargetPiece(piece);
+ CPPUNIT_ASSERT_EQUAL((size_t)2, btRequestFactory->countTargetPiece());
+ }
+ CPPUNIT_ASSERT_EQUAL((size_t)18, btRequestFactory->countMissingBlock());
}
void DefaultBtRequestFactoryTest::testRemoveCompletedPiece() {
diff --git a/test/MockBtRequestFactory.h b/test/MockBtRequestFactory.h
index 5a9fa7ee..fa0d2721 100644
--- a/test/MockBtRequestFactory.h
+++ b/test/MockBtRequestFactory.h
@@ -17,6 +17,8 @@ public:
virtual size_t countTargetPiece() { return 0; }
+ virtual size_t countMissingBlock() { return 0; }
+
virtual void removeCompletedPiece() {}
virtual void doChokedAction() {}