diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-07-04 15:03:35 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-07-04 15:03:35 +0000 |
| commit | a5cc350dcf6cf83a84b5845e0f61230f1f42e7c7 (patch) | |
| tree | 38d73b2aebcdd3c26d76782690d6bb10fe29ad86 /test/FallocFileAllocationIteratorTest.cc | |
| parent | 8f10241e25d796655a8aaaf7cf69c7061d05bc43 (diff) | |
2010-07-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
When allocating disk space, for Linux system with fallocate()
system call, first check file system supports fallocate. This
just run fallocate with small chunk and see it succeeds or fails.
If it succeeds, use fallocate() to allocate entire file otherwise
fall back to traditional slower method: writing zeros. This
behavior is enabled in --file-allocation=prealloc, so this is
enabled by default for most modern Linux.
* configure.ac
* src/AbstractDiskWriter.cc
* src/AbstractDiskWriter.h
* src/AbstractSingleDiskAdaptor.cc
* src/AdaptiveFileAllocationIterator.cc
* src/AdaptiveFileAllocationIterator.h
* src/DefaultPieceStorage.cc
* src/DiskAdaptor.cc
* src/DiskAdaptor.h
* src/FallocFileAllocationIterator.cc
* src/Makefile.am
* src/MultiFileAllocationIterator.cc
* src/OptionHandlerFactory.cc
* test/FallocFileAllocationIteratorTest.cc
* test/Makefile.am
Diffstat (limited to 'test/FallocFileAllocationIteratorTest.cc')
| -rw-r--r-- | test/FallocFileAllocationIteratorTest.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/test/FallocFileAllocationIteratorTest.cc b/test/FallocFileAllocationIteratorTest.cc index f82f8942..07cab4bc 100644 --- a/test/FallocFileAllocationIteratorTest.cc +++ b/test/FallocFileAllocationIteratorTest.cc @@ -26,6 +26,9 @@ CPPUNIT_TEST_SUITE_REGISTRATION( FallocFileAllocationIteratorTest ); void FallocFileAllocationIteratorTest::testAllocate() { + // When fallocate is used, test fails if file system does not + // support it. So skip it. +#ifndef HAVE_FALLOCATE std::string dir = "./"; std::string fname = "aria2_FallocFileAllocationIteratorTest_testAllocate"; std::string fn = dir+"/"+fname; @@ -48,6 +51,7 @@ void FallocFileAllocationIteratorTest::testAllocate() CPPUNIT_ASSERT(itr.finished()); CPPUNIT_ASSERT_EQUAL((uint64_t)40960, f.size()); +#endif // !HAVE_FALLOCATE } } // namespace aria2 |
