diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2006-09-23 11:58:23 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2006-09-23 11:58:23 +0000 |
| commit | c0a53bf3e86c26e5d5b4bb5fe4cade2853644115 (patch) | |
| tree | 95c63a827d2b553d3a0a0ed4785de2eaa8824599 /test | |
| parent | 1b5af8e8298d85d47be1de79cf8158b1aae6f06b (diff) | |
Diffstat (limited to 'test')
| -rw-r--r-- | test/SegmentManTest.cc | 113 | ||||
| -rw-r--r-- | test/SpeedCalcTest.cc | 27 |
2 files changed, 140 insertions, 0 deletions
diff --git a/test/SegmentManTest.cc b/test/SegmentManTest.cc new file mode 100644 index 00000000..9c311818 --- /dev/null +++ b/test/SegmentManTest.cc @@ -0,0 +1,113 @@ +#include "SegmentMan.h" +#include "File.h" +#include "prefs.h" +#include "Util.h" +#include <cppunit/extensions/HelperMacros.h> + +using namespace std; + +class SegmentManTest:public CppUnit::TestFixture { + + CPPUNIT_TEST_SUITE(SegmentManTest); + CPPUNIT_TEST(testSaveAndLoad); + CPPUNIT_TEST(testNullBitfield); + CPPUNIT_TEST(testCancelSegmentOnNullBitfield); + CPPUNIT_TEST_SUITE_END(); +private: + +public: + void setUp() { + } + + void testSaveAndLoad(); + void testNullBitfield(); + void testCancelSegmentOnNullBitfield(); +}; + + +CPPUNIT_TEST_SUITE_REGISTRATION( SegmentManTest ); + +void SegmentManTest::testSaveAndLoad() { + string filename = "save-temp"; + string aria2filename = filename+".aria2"; + File saveFile(aria2filename); + if(saveFile.exists()) { + saveFile.remove(); + assert(!saveFile.exists()); + } + try { + SegmentMan segmentMan; + segmentMan.totalSize = 10*1024*1024; + segmentMan.ufilename = filename; + segmentMan.initBitfield(1024*1024, segmentMan.totalSize); + + Segment2 seg1; + segmentMan.getSegment2(seg1, 1); + seg1.writtenLength = seg1.length; + segmentMan.completeSegment2(1, seg1); + + Segment2 seg2; + segmentMan.getSegment2(seg2, 2); + seg2.writtenLength = 512*1024; + segmentMan.updateSegment2(2, seg2); + + Segment2 seg3; + segmentMan.getSegment2(seg3, 3); + seg2.writtenLength = 512*1024; + segmentMan.updateSegment2(2, seg2); + + segmentMan.save(); + + CPPUNIT_ASSERT(saveFile.exists()); + + SegmentMan segmentManLoad; + segmentManLoad.ufilename = filename; + segmentManLoad.load(); + + CPPUNIT_ASSERT_EQUAL(segmentMan.totalSize, segmentManLoad.totalSize); + + Segment2 seg2Load; + segmentManLoad.getSegment2(seg2Load, 2, seg2.index); + CPPUNIT_ASSERT_EQUAL(seg2, seg2Load); + + Segment2 seg3Load; + segmentManLoad.getSegment2(seg3Load, 3, seg3.index); + CPPUNIT_ASSERT_EQUAL(seg3, seg3Load); + + CPPUNIT_ASSERT_EQUAL(segmentMan.getDownloadLength(), segmentManLoad.getDownloadLength()); + + } catch(Exception* e) { + cerr << e->getMsg() << endl; + delete e; + } +} + +void SegmentManTest::testNullBitfield() { + SegmentMan segmentMan; + Option op; + op.put(PREF_SEGMENT_SIZE, Util::itos(1024*1024)); + segmentMan.option = &op; + + Segment2 segment; + CPPUNIT_ASSERT(segmentMan.getSegment2(segment, 1)); + CPPUNIT_ASSERT_EQUAL(Segment2(0, 0, 0), segment); + + Segment2 segment2; + CPPUNIT_ASSERT(!segmentMan.getSegment2(segment2, 2)); + + long long int totalLength = 1024*1024; + segment.writtenLength = totalLength; + CPPUNIT_ASSERT(segmentMan.updateSegment2(1, segment)); + CPPUNIT_ASSERT_EQUAL(totalLength, segmentMan.getDownloadLength()); + CPPUNIT_ASSERT(segmentMan.completeSegment2(1, segment)); + CPPUNIT_ASSERT_EQUAL(totalLength, segmentMan.getDownloadLength()); +} + +void SegmentManTest::testCancelSegmentOnNullBitfield() { + SegmentMan segmentMan; + + Segment2 segment; + CPPUNIT_ASSERT(segmentMan.getSegment2(segment, 1)); + CPPUNIT_ASSERT(segmentMan.cancelSegment2(1, segment)); + CPPUNIT_ASSERT(segmentMan.getSegment2(segment, 1)); +} diff --git a/test/SpeedCalcTest.cc b/test/SpeedCalcTest.cc new file mode 100644 index 00000000..3ff57e6f --- /dev/null +++ b/test/SpeedCalcTest.cc @@ -0,0 +1,27 @@ +#include "SpeedCalc.h" +#include <string> +#include <cppunit/extensions/HelperMacros.h> + +using namespace std; + +class SpeedCalcTest:public CppUnit::TestFixture { + + CPPUNIT_TEST_SUITE(SpeedCalcTest); + CPPUNIT_TEST(testUpdate); + CPPUNIT_TEST_SUITE_END(); +private: + +public: + void setUp() { + } + + void testUpdate(); +}; + + +CPPUNIT_TEST_SUITE_REGISTRATION( SpeedCalcTest ); + +void SpeedCalcTest::testUpdate() { + SpeedCalc calc; + calc.update(1000); +} |
