summaryrefslogtreecommitdiff
path: root/test/SingleFileAllocationIteratorTest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'test/SingleFileAllocationIteratorTest.cc')
-rw-r--r--test/SingleFileAllocationIteratorTest.cc33
1 files changed, 9 insertions, 24 deletions
diff --git a/test/SingleFileAllocationIteratorTest.cc b/test/SingleFileAllocationIteratorTest.cc
index 050d0a19..4cdb7d39 100644
--- a/test/SingleFileAllocationIteratorTest.cc
+++ b/test/SingleFileAllocationIteratorTest.cc
@@ -1,7 +1,6 @@
#include "SingleFileAllocationIterator.h"
#include "File.h"
#include "DefaultDiskWriter.h"
-#include "DirectDiskAdaptor.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
@@ -31,38 +30,24 @@ void SingleFileAllocationIteratorTest::testAllocate()
string fname = "aria2_SingleFileAllocationIteratorTest_testAllocate";
string fn = dir+"/"+fname;
ofstream of(fn.c_str());
-
of << "0123456789";
-
of.close();
File x(fn);
CPPUNIT_ASSERT_EQUAL((int64_t)10, x.size());
-
- DefaultDiskWriterHandle writer = new DefaultDiskWriter();
- DirectDiskAdaptorHandle diskAdaptor = new DirectDiskAdaptor();
- diskAdaptor->setDiskWriter(writer);
- diskAdaptor->setTotalLength(16*1024*2+8*1024);
- diskAdaptor->setStoreDir(dir);
- FileEntryHandle fileEntry = new FileEntry(fname,
- diskAdaptor->getTotalLength(),
- 0);
- FileEntries fs;
- fs.push_back(fileEntry);
- diskAdaptor->setFileEntries(fs);
+ DefaultDiskWriter writer;
+ int64_t offset = 10;
+ int64_t totalLength = 16*1024*2+8*1024;
// we have to open file first.
- diskAdaptor->openFile();
- SingleFileAllocationIteratorHandle itr = diskAdaptor->fileAllocationIterator();
-
- itr->allocateChunk();
- CPPUNIT_ASSERT(!itr->finished());
- itr->allocateChunk();
- CPPUNIT_ASSERT(!itr->finished());
- itr->allocateChunk();
- CPPUNIT_ASSERT(itr->finished());
+ writer.openExistingFile(fn);
+ SingleFileAllocationIterator itr(&writer, offset, totalLength);
+ itr.init();
+ while(!itr.finished()) {
+ itr.allocateChunk();
+ }
File f(fn);
CPPUNIT_ASSERT_EQUAL((int64_t)40960, f.size());
}