12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #include "GlowFileAllocator.h"
- #include "File.h"
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <fcntl.h>
- #include <fstream>
- #include <iomanip>
- #include <cppunit/extensions/HelperMacros.h>
- class GlowFileAllocatorTest:public CppUnit::TestFixture {
- CPPUNIT_TEST_SUITE(GlowFileAllocatorTest);
- CPPUNIT_TEST(testAllocate);
- CPPUNIT_TEST_SUITE_END();
- private:
- public:
- void setUp() {}
- void testAllocate();
- };
- CPPUNIT_TEST_SUITE_REGISTRATION( GlowFileAllocatorTest );
- void GlowFileAllocatorTest::testAllocate()
- {
- string fn = "/tmp/aria2_GlowFileAllocatorTest_testAllocate";
- ofstream of(fn.c_str());
- of << "0123456789";
- of.close();
- File x("/tmp/aria2_GlowFileAllocatorTest_testAllocate");
- CPPUNIT_ASSERT_EQUAL((int64_t)10, x.size());
- int fd;
- if((fd = open(fn.c_str(), O_RDWR, S_IRUSR|S_IWUSR)) < 0) {
- CPPUNIT_FAIL("cannot open file");
- }
- GlowFileAllocator allocator;
- allocator.allocate(fd, 4097);
- if(close(fd) < 0) {
- CPPUNIT_FAIL("cannot close file");
- }
- ifstream is(fn.c_str());
- char buf[11];
- is >> std::setw(sizeof(buf)) >> buf;
- CPPUNIT_ASSERT(strcmp("0123456789", buf) == 0);
- File f(fn);
- CPPUNIT_ASSERT_EQUAL((int64_t)4097, f.size());
- }
|