FileTest.cc 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  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_SUITE_END();
  15. private:
  16. public:
  17. void setUp() {
  18. }
  19. void testExists();
  20. void testIsFile();
  21. void testIsDir();
  22. void testRemove();
  23. };
  24. CPPUNIT_TEST_SUITE_REGISTRATION( FileTest );
  25. void FileTest::testExists() {
  26. File f("FileTest.cc");
  27. CPPUNIT_ASSERT(f.exists());
  28. File f2("NonExistentFile");
  29. CPPUNIT_ASSERT(!f2.exists());
  30. File d1("../test");
  31. CPPUNIT_ASSERT(d1.exists());
  32. }
  33. void FileTest::testIsFile() {
  34. File f("FileTest.cc");
  35. CPPUNIT_ASSERT(f.isFile());
  36. File f2("NonExistentFile");
  37. CPPUNIT_ASSERT(!f2.isFile());
  38. File d1("../test");
  39. CPPUNIT_ASSERT(!d1.isFile());
  40. }
  41. void FileTest::testIsDir() {
  42. File f("FileTest.cc");
  43. CPPUNIT_ASSERT(!f.isDir());
  44. File f2("NonExistentFile");
  45. CPPUNIT_ASSERT(!f2.isDir());
  46. File d1("../test");
  47. CPPUNIT_ASSERT(d1.isDir());
  48. }
  49. void FileTest::testRemove() {
  50. int fd;
  51. string name = "/tmp/aria2test";
  52. if((fd = creat(name.c_str(), S_IRUSR|S_IWUSR)) < 0) {
  53. CPPUNIT_FAIL("cannot create test file");
  54. }
  55. close(fd);
  56. File f(name);
  57. CPPUNIT_ASSERT(f.isFile());
  58. CPPUNIT_ASSERT(f.remove());
  59. CPPUNIT_ASSERT(!f.exists());
  60. // delete the file again
  61. CPPUNIT_ASSERT(!f.remove());
  62. string dir = "/tmp/aria2testdir";
  63. mkdir(dir.c_str(), 0777);
  64. File d(dir);
  65. CPPUNIT_ASSERT(d.exists());
  66. CPPUNIT_ASSERT(d.remove());
  67. CPPUNIT_ASSERT(!d.exists());
  68. // delete the directory again
  69. CPPUNIT_ASSERT(!d.remove());
  70. }