diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-09-07 08:29:09 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-09-07 08:29:09 +0000 |
| commit | 390538d0b5936cbad9bcdff9ec2e04772751a35c (patch) | |
| tree | 75a1a5933c5812fbacc237a6a024d0880965396f /test/MultiDiskAdaptorTest.cc | |
| parent | 5fb94a3af0e825dfd1905a01ca2774ca8a126d1c (diff) | |
2008-09-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed the bug that exception is thrown when
MultiDiskAdaptor::size() is
called if the number of file entries are greater than max open
files.
* src/AbstractSingleDiskAdaptor.cc
* src/AbstractSingleDiskAdaptor.h
* src/DiskAdaptor.h
* src/MultiDiskAdaptor.cc
* src/MultiDiskAdaptor.h
* test/MultiDiskAdaptorTest.cc
Diffstat (limited to 'test/MultiDiskAdaptorTest.cc')
| -rw-r--r-- | test/MultiDiskAdaptorTest.cc | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/test/MultiDiskAdaptorTest.cc b/test/MultiDiskAdaptorTest.cc index ca5960f6..295bce55 100644 --- a/test/MultiDiskAdaptorTest.cc +++ b/test/MultiDiskAdaptorTest.cc @@ -17,6 +17,7 @@ class MultiDiskAdaptorTest:public CppUnit::TestFixture { CPPUNIT_TEST(testWriteData); CPPUNIT_TEST(testReadData); CPPUNIT_TEST(testCutTrailingGarbage); + CPPUNIT_TEST(testSize); CPPUNIT_TEST_SUITE_END(); private: SharedHandle<MultiDiskAdaptor> adaptor; @@ -31,6 +32,7 @@ public: void testWriteData(); void testReadData(); void testCutTrailingGarbage(); + void testSize(); }; @@ -167,4 +169,32 @@ void MultiDiskAdaptorTest::testCutTrailingGarbage() File(topDirPath+"/"+entries[1]->getPath()).size()); } +void MultiDiskAdaptorTest::testSize() +{ + std::string dir = "/tmp"; + std::string topDir = "."; + std::string topDirPath = dir+"/"+topDir; + std::string prefix = "aria2_MultiDiskAdaptorTest_testSize_"; + SharedHandle<FileEntry> entries[] = { + SharedHandle<FileEntry>(new FileEntry(prefix+"1", 1, 0)), + SharedHandle<FileEntry>(new FileEntry(prefix+"2", 1, 1)) + }; + for(size_t i = 0; i < arrayLength(entries); ++i) { + createFile(topDirPath+"/"+entries[i]->getPath(), + entries[i]->getLength()); + } + std::deque<SharedHandle<FileEntry> > fileEntries + (&entries[0], &entries[arrayLength(entries)]); + + MultiDiskAdaptor adaptor; + adaptor.setStoreDir(dir); + adaptor.setTopDir(topDir); + adaptor.setFileEntries(fileEntries); + adaptor.setMaxOpenFiles(1); + + adaptor.openFile(); + + CPPUNIT_ASSERT_EQUAL((uint64_t)2, adaptor.size()); +} + } // namespace aria2 |
