mirror of https://github.com/aria2/aria2
2010-06-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Removed unused getOverflow(). Added assertion in PiecedSegment::updateWrittenLength() to check updated written length does not exceed piece length. * src/GrowSegment.h * src/PiecedSegment.cc * src/PiecedSegment.h * src/Segment.h * test/SegmentTest.ccpull/1/head
parent
8a619ab9b9
commit
9d0eb8c08b
11
ChangeLog
11
ChangeLog
|
@ -1,3 +1,14 @@
|
|||
2010-06-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||
|
||||
Removed unused getOverflow(). Added assertion in
|
||||
PiecedSegment::updateWrittenLength() to check updated written
|
||||
length does not exceed piece length.
|
||||
* src/GrowSegment.h
|
||||
* src/PiecedSegment.cc
|
||||
* src/PiecedSegment.h
|
||||
* src/Segment.h
|
||||
* test/SegmentTest.cc
|
||||
|
||||
2010-06-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||
|
||||
Return null if written length > 0 even if SegmentEntry->cuid
|
||||
|
|
|
@ -83,11 +83,6 @@ public:
|
|||
return writtenLength_;
|
||||
}
|
||||
|
||||
virtual size_t getOverflowLength() const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
virtual void updateWrittenLength(size_t bytes);
|
||||
|
||||
#ifdef ENABLE_MESSAGE_DIGEST
|
||||
|
|
|
@ -40,7 +40,7 @@ namespace aria2 {
|
|||
|
||||
PiecedSegment::PiecedSegment
|
||||
(size_t pieceLength, const SharedHandle<Piece>& piece):
|
||||
pieceLength_(pieceLength), overflowLength_(0), piece_(piece)
|
||||
pieceLength_(pieceLength), piece_(piece)
|
||||
{
|
||||
size_t index;
|
||||
bool t = piece_->getFirstMissingBlockIndexWithoutLock(index);
|
||||
|
@ -78,10 +78,7 @@ size_t PiecedSegment::getLength() const
|
|||
void PiecedSegment::updateWrittenLength(size_t bytes)
|
||||
{
|
||||
size_t newWrittenLength = writtenLength_+bytes;
|
||||
if(newWrittenLength > piece_->getLength()) {
|
||||
overflowLength_ = newWrittenLength-piece_->getLength();
|
||||
newWrittenLength = piece_->getLength();
|
||||
}
|
||||
assert(newWrittenLength <= piece_->getLength());
|
||||
for(size_t i = writtenLength_/piece_->getBlockLength(),
|
||||
end = newWrittenLength/piece_->getBlockLength(); i < end; ++i) {
|
||||
piece_->completeBlock(i);
|
||||
|
@ -115,7 +112,6 @@ std::string PiecedSegment::getHashString()
|
|||
void PiecedSegment::clear()
|
||||
{
|
||||
writtenLength_ = 0;
|
||||
overflowLength_ = 0;
|
||||
piece_->clearAllBlock();
|
||||
|
||||
#ifdef ENABLE_MESSAGE_DIGEST
|
||||
|
|
|
@ -46,7 +46,6 @@ private:
|
|||
* The last piece likely have shorter length than the other length.
|
||||
*/
|
||||
size_t pieceLength_;
|
||||
size_t overflowLength_;
|
||||
SharedHandle<Piece> piece_;
|
||||
size_t writtenLength_;
|
||||
|
||||
|
@ -75,11 +74,6 @@ public:
|
|||
return writtenLength_;
|
||||
}
|
||||
|
||||
virtual size_t getOverflowLength() const
|
||||
{
|
||||
return overflowLength_;
|
||||
}
|
||||
|
||||
virtual void updateWrittenLength(size_t bytes);
|
||||
|
||||
#ifdef ENABLE_MESSAGE_DIGEST
|
||||
|
|
|
@ -65,8 +65,6 @@ public:
|
|||
|
||||
virtual size_t getWrittenLength() const = 0;
|
||||
|
||||
virtual size_t getOverflowLength() const = 0;
|
||||
|
||||
virtual void updateWrittenLength(size_t bytes) = 0;
|
||||
|
||||
#ifdef ENABLE_MESSAGE_DIGEST
|
||||
|
|
|
@ -1,14 +1,15 @@
|
|||
#include "PiecedSegment.h"
|
||||
#include "Piece.h"
|
||||
|
||||
#include <cppunit/extensions/HelperMacros.h>
|
||||
|
||||
#include "Piece.h"
|
||||
|
||||
namespace aria2 {
|
||||
|
||||
class SegmentTest : public CppUnit::TestFixture {
|
||||
|
||||
CPPUNIT_TEST_SUITE(SegmentTest);
|
||||
CPPUNIT_TEST(testUpdateWrittenLength);
|
||||
CPPUNIT_TEST(testUpdateWrittenLength_overflow);
|
||||
CPPUNIT_TEST(testUpdateWrittenLength_lastPiece);
|
||||
CPPUNIT_TEST(testUpdateWrittenLength_incompleteLastPiece);
|
||||
CPPUNIT_TEST(testClear);
|
||||
|
@ -19,7 +20,6 @@ public:
|
|||
void setUp() {}
|
||||
|
||||
void testUpdateWrittenLength();
|
||||
void testUpdateWrittenLength_overflow();
|
||||
void testUpdateWrittenLength_lastPiece();
|
||||
void testUpdateWrittenLength_incompleteLastPiece();
|
||||
void testClear();
|
||||
|
@ -42,22 +42,12 @@ void SegmentTest::testUpdateWrittenLength()
|
|||
CPPUNIT_ASSERT(p->pieceComplete());
|
||||
}
|
||||
|
||||
void SegmentTest::testUpdateWrittenLength_overflow()
|
||||
{
|
||||
SharedHandle<Piece> p(new Piece(0, 16*1024*10));
|
||||
PiecedSegment s(16*1024*10, p);
|
||||
|
||||
s.updateWrittenLength(16*1024*11);
|
||||
CPPUNIT_ASSERT(p->pieceComplete());
|
||||
CPPUNIT_ASSERT_EQUAL((size_t)16*1024, s.getOverflowLength());
|
||||
}
|
||||
|
||||
void SegmentTest::testUpdateWrittenLength_lastPiece()
|
||||
{
|
||||
SharedHandle<Piece> p(new Piece(0, 16*1024*9+1));
|
||||
PiecedSegment s(16*1024*10, p);
|
||||
|
||||
s.updateWrittenLength(16*1024*10);
|
||||
s.updateWrittenLength(p->getLength());
|
||||
CPPUNIT_ASSERT(p->pieceComplete());
|
||||
}
|
||||
|
||||
|
@ -76,12 +66,10 @@ void SegmentTest::testClear()
|
|||
{
|
||||
SharedHandle<Piece> p(new Piece(0, 16*1024*10));
|
||||
PiecedSegment s(16*1024*10, p);
|
||||
s.updateWrittenLength(16*1024*11);
|
||||
s.updateWrittenLength(16*1024*10);
|
||||
CPPUNIT_ASSERT_EQUAL((size_t)16*1024*10, s.getWrittenLength());
|
||||
CPPUNIT_ASSERT_EQUAL((size_t)16*1024, s.getOverflowLength());
|
||||
s.clear();
|
||||
CPPUNIT_ASSERT_EQUAL((size_t)0, s.getWrittenLength());
|
||||
CPPUNIT_ASSERT_EQUAL((size_t)0, s.getOverflowLength());
|
||||
}
|
||||
|
||||
} // namespace aria2
|
||||
|
|
Loading…
Reference in New Issue