summaryrefslogtreecommitdiff
path: root/test/MultiFileAllocationIteratorTest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'test/MultiFileAllocationIteratorTest.cc')
-rw-r--r--test/MultiFileAllocationIteratorTest.cc110
1 files changed, 51 insertions, 59 deletions
diff --git a/test/MultiFileAllocationIteratorTest.cc b/test/MultiFileAllocationIteratorTest.cc
index e061fab5..c1507ede 100644
--- a/test/MultiFileAllocationIteratorTest.cc
+++ b/test/MultiFileAllocationIteratorTest.cc
@@ -38,18 +38,18 @@ void MultiFileAllocationIteratorTest::testMakeDiskWriterEntries()
std::string storeDir = A2_TEST_OUT_DIR"/aria2_MultiFileAllocationIteratorTest"
"_testMakeDiskWriterEntries";
- std::shared_ptr<FileEntry> fs[] = {
- std::shared_ptr<FileEntry>(new FileEntry(storeDir+"/file1", 1536, 0)),
- std::shared_ptr<FileEntry>(new FileEntry(storeDir+"/file2", 2048, 1536)),// req no
- std::shared_ptr<FileEntry>(new FileEntry(storeDir+"/file3", 1024, 3584)),
- std::shared_ptr<FileEntry>(new FileEntry(storeDir+"/file4", 1024, 4608)),// req no
- std::shared_ptr<FileEntry>(new FileEntry(storeDir+"/file5", 1024, 5632)),// req no
- std::shared_ptr<FileEntry>(new FileEntry(storeDir+"/file6", 1024, 6656)),// req no
- std::shared_ptr<FileEntry>(new FileEntry(storeDir+"/file7", 256, 7680)),// req no
- std::shared_ptr<FileEntry>(new FileEntry(storeDir+"/file8", 255, 7936)),
- std::shared_ptr<FileEntry>(new FileEntry(storeDir+"/file9", 1025, 8191)),// req no
- std::shared_ptr<FileEntry>(new FileEntry(storeDir+"/fileA", 1024, 9216)),// req no
- std::shared_ptr<FileEntry>(new FileEntry(storeDir+"/fileB", 1024, 10240)),
+ auto fs = std::vector<std::shared_ptr<FileEntry>>{
+ std::make_shared<FileEntry>(storeDir+"/file1", 1536, 0),
+ std::make_shared<FileEntry>(storeDir+"/file2", 2048, 1536),// req no
+ std::make_shared<FileEntry>(storeDir+"/file3", 1024, 3584),
+ std::make_shared<FileEntry>(storeDir+"/file4", 1024, 4608),// req no
+ std::make_shared<FileEntry>(storeDir+"/file5", 1024, 5632),// req no
+ std::make_shared<FileEntry>(storeDir+"/file6", 1024, 6656),// req no
+ std::make_shared<FileEntry>(storeDir+"/file7", 256, 7680),// req no
+ std::make_shared<FileEntry>(storeDir+"/file8", 255, 7936),
+ std::make_shared<FileEntry>(storeDir+"/file9", 1025, 8191),// req no
+ std::make_shared<FileEntry>(storeDir+"/fileA", 1024, 9216),// req no
+ std::make_shared<FileEntry>(storeDir+"/fileB", 1024, 10240)
};
fs[1]->setRequested(false); // file2
fs[3]->setRequested(false); // file4
@@ -59,21 +59,22 @@ void MultiFileAllocationIteratorTest::testMakeDiskWriterEntries()
fs[8]->setRequested(false); // file9
fs[9]->setRequested(false); // fileA
+ for(auto& fe : fs) {
+ File{fe->getPath()}.remove();
+ }
// create empty file4
createFile(storeDir+std::string("/file4"), 0);
- std::shared_ptr<MultiDiskAdaptor> diskAdaptor(new MultiDiskAdaptor());
- diskAdaptor->setFileEntries(std::begin(fs), std::end(fs));
- diskAdaptor->setPieceLength(1024);
- diskAdaptor->openFile();
-
- auto itr = std::dynamic_pointer_cast<MultiFileAllocationIterator>
- (diskAdaptor->fileAllocationIterator());
+ MultiDiskAdaptor diskAdaptor;
+ diskAdaptor.setFileEntries(std::begin(fs), std::end(fs));
+ diskAdaptor.setPieceLength(1024);
+ diskAdaptor.openFile();
- const std::deque<std::shared_ptr<DiskWriterEntry> >& entries =
- itr->getDiskWriterEntries();
+ auto allocitr = diskAdaptor.fileAllocationIterator();
+ auto itr = dynamic_cast<MultiFileAllocationIterator*>(allocitr.get());
+ auto& entries = itr->getDiskWriterEntries();
CPPUNIT_ASSERT_EQUAL((size_t)11, entries.size());
// file1
@@ -152,58 +153,49 @@ void MultiFileAllocationIteratorTest::testAllocate()
int64_t length6 = 30;
try {
- std::shared_ptr<MultiDiskAdaptor> diskAdaptor(new MultiDiskAdaptor());
- diskAdaptor->setPieceLength(1);
+ MultiDiskAdaptor diskAdaptor;
+ diskAdaptor.setPieceLength(1);
int64_t offset = 0;
- std::shared_ptr<FileEntry> fileEntry1(new FileEntry(storeDir+"/"+fname1,
- length1,
- offset));
+ auto fileEntry1 = std::make_shared<FileEntry>(storeDir+"/"+fname1,
+ length1, offset);
offset += length1;
- std::shared_ptr<FileEntry> fileEntry2(new FileEntry(storeDir+"/"+fname2,
- length2,
- offset));
-
+ auto fileEntry2 = std::make_shared<FileEntry>(storeDir+"/"+fname2,
+ length2, offset);
offset += length2;
- std::shared_ptr<FileEntry> fileEntry3(new FileEntry(storeDir+"/"+fname3,
- length3,
- offset));
+ auto fileEntry3 = std::make_shared<FileEntry>(storeDir+"/"+fname3,
+ length3, offset);
offset += length3;
- std::shared_ptr<FileEntry> fileEntry4(new FileEntry(storeDir+"/"+fname4,
- length4,
- offset));
+ auto fileEntry4 = std::make_shared<FileEntry>(storeDir+"/"+fname4,
+ length4, offset);
fileEntry4->setRequested(false);
-
offset += length4;
- std::shared_ptr<FileEntry> fileEntry5(new FileEntry(storeDir+"/"+fname5,
- length5,
- offset));
-
+ auto fileEntry5 = std::make_shared<FileEntry>(storeDir+"/"+fname5,
+ length5, offset);
offset += length5;
- std::shared_ptr<FileEntry> fileEntry6(new FileEntry(storeDir+"/"+fname6,
- length6,
- offset));
+ auto fileEntry6 = std::make_shared<FileEntry>(storeDir+"/"+fname6,
+ length6, offset);
fileEntry6->setRequested(false);
- std::vector<std::shared_ptr<FileEntry> > fs;
- fs.push_back(fileEntry1);
- fs.push_back(fileEntry2);
- fs.push_back(fileEntry3);
- fs.push_back(fileEntry4);
- fs.push_back(fileEntry5);
- fs.push_back(fileEntry6);
- diskAdaptor->setFileEntries(fs.begin(), fs.end());
-
- for(std::vector<std::shared_ptr<FileEntry> >::const_iterator i = fs.begin();
- i != fs.end(); ++i) {
- File((*i)->getPath()).remove();
+ auto fs = std::vector<std::shared_ptr<FileEntry>>{
+ fileEntry1,
+ fileEntry2,
+ fileEntry3,
+ fileEntry4,
+ fileEntry5,
+ fileEntry6
+ };
+ diskAdaptor.setFileEntries(std::begin(fs), std::end(fs));
+
+ for(auto& fe : fs) {
+ File{fe->getPath()}.remove();
}
// we have to open file first.
- diskAdaptor->initAndOpenFile();
- auto itr = std::dynamic_pointer_cast<MultiFileAllocationIterator>
- (diskAdaptor->fileAllocationIterator());
+ diskAdaptor.initAndOpenFile();
+ auto allocitr = diskAdaptor.fileAllocationIterator();
+ auto itr = dynamic_cast<MultiFileAllocationIterator*>(allocitr.get());
while(!itr->finished()) {
itr->allocateChunk();
}