FileTest.cc 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. #include "File.h"
  2. #include <sys/types.h>
  3. #include <sys/stat.h>
  4. #include <fcntl.h>
  5. #include <string>
  6. #include <cppunit/extensions/HelperMacros.h>
  7. using namespace std;
  8. class FileTest:public CppUnit::TestFixture {
  9. CPPUNIT_TEST_SUITE(FileTest);
  10. CPPUNIT_TEST(testExists);
  11. CPPUNIT_TEST(testIsFile);
  12. CPPUNIT_TEST(testIsDir);
  13. CPPUNIT_TEST(testRemove);
  14. CPPUNIT_TEST(testSize);
  15. CPPUNIT_TEST_SUITE_END();
  16. private:
  17. public:
  18. void setUp() {
  19. }
  20. void testExists();
  21. void testIsFile();
  22. void testIsDir();
  23. void testRemove();
  24. void testSize();
  25. };
  26. CPPUNIT_TEST_SUITE_REGISTRATION( FileTest );
  27. void FileTest::testExists() {
  28. File f("FileTest.cc");
  29. CPPUNIT_ASSERT(f.exists());
  30. File f2("NonExistentFile");
  31. CPPUNIT_ASSERT(!f2.exists());
  32. File d1("../test");
  33. CPPUNIT_ASSERT(d1.exists());
  34. }
  35. void FileTest::testIsFile() {
  36. File f("FileTest.cc");
  37. CPPUNIT_ASSERT(f.isFile());
  38. File f2("NonExistentFile");
  39. CPPUNIT_ASSERT(!f2.isFile());
  40. File d1("../test");
  41. CPPUNIT_ASSERT(!d1.isFile());
  42. }
  43. void FileTest::testIsDir() {
  44. File f("FileTest.cc");
  45. CPPUNIT_ASSERT(!f.isDir());
  46. File f2("NonExistentFile");
  47. CPPUNIT_ASSERT(!f2.isDir());
  48. File d1("../test");
  49. CPPUNIT_ASSERT(d1.isDir());
  50. }
  51. void FileTest::testRemove() {
  52. int fd;
  53. string name = "/tmp/aria2test";
  54. if((fd = creat(name.c_str(), S_IRUSR|S_IWUSR)) < 0) {
  55. CPPUNIT_FAIL("cannot create test file");
  56. }
  57. close(fd);
  58. File f(name);
  59. CPPUNIT_ASSERT(f.isFile());
  60. CPPUNIT_ASSERT(f.remove());
  61. CPPUNIT_ASSERT(!f.exists());
  62. // delete the file again
  63. CPPUNIT_ASSERT(!f.remove());
  64. string dir = "/tmp/aria2testdir";
  65. mkdir(dir.c_str(), 0777);
  66. File d(dir);
  67. CPPUNIT_ASSERT(d.exists());
  68. CPPUNIT_ASSERT(d.remove());
  69. CPPUNIT_ASSERT(!d.exists());
  70. // delete the directory again
  71. CPPUNIT_ASSERT(!d.remove());
  72. }
  73. void FileTest::testSize() {
  74. File f("4096chunk.txt");
  75. CPPUNIT_ASSERT_EQUAL(4096, (int)f.size());
  76. }