blob: 66e2e64f0146c6a2c8ec41c04948ce7e82563d18 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
#include "File.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string>
#include <cppunit/extensions/HelperMacros.h>
using namespace std;
class FileTest:public CppUnit::TestFixture {
CPPUNIT_TEST_SUITE(FileTest);
CPPUNIT_TEST(testExists);
CPPUNIT_TEST(testIsFile);
CPPUNIT_TEST(testIsDir);
CPPUNIT_TEST(testRemove);
CPPUNIT_TEST(testSize);
CPPUNIT_TEST(testMkdir);
CPPUNIT_TEST(testGetDirname);
CPPUNIT_TEST(testGetBasename);
CPPUNIT_TEST_SUITE_END();
private:
public:
void setUp() {
}
void testExists();
void testIsFile();
void testIsDir();
void testRemove();
void testSize();
void testMkdir();
void testGetDirname();
void testGetBasename();
};
CPPUNIT_TEST_SUITE_REGISTRATION( FileTest );
void FileTest::testExists() {
File f("FileTest.cc");
CPPUNIT_ASSERT(f.exists());
File f2("NonExistentFile");
CPPUNIT_ASSERT(!f2.exists());
File d1("../test");
CPPUNIT_ASSERT(d1.exists());
}
void FileTest::testIsFile() {
File f("FileTest.cc");
CPPUNIT_ASSERT(f.isFile());
File f2("NonExistentFile");
CPPUNIT_ASSERT(!f2.isFile());
File d1("../test");
CPPUNIT_ASSERT(!d1.isFile());
}
void FileTest::testIsDir() {
File f("FileTest.cc");
CPPUNIT_ASSERT(!f.isDir());
File f2("NonExistentFile");
CPPUNIT_ASSERT(!f2.isDir());
File d1("../test");
CPPUNIT_ASSERT(d1.isDir());
}
void FileTest::testRemove() {
int fd;
string name = "/tmp/aria2test";
unlink(name.c_str());
if((fd = creat(name.c_str(), S_IRUSR|S_IWUSR)) < 0) {
CPPUNIT_FAIL("cannot create test file");
}
close(fd);
File f(name);
CPPUNIT_ASSERT(f.isFile());
CPPUNIT_ASSERT(f.remove());
CPPUNIT_ASSERT(!f.exists());
// delete the file again
CPPUNIT_ASSERT(!f.remove());
string dir = "/tmp/aria2testdir";
mkdir(dir.c_str(), 0777);
File d(dir);
CPPUNIT_ASSERT(d.exists());
CPPUNIT_ASSERT(d.remove());
CPPUNIT_ASSERT(!d.exists());
// delete the directory again
CPPUNIT_ASSERT(!d.remove());
}
void FileTest::testSize() {
File f("4096chunk.txt");
CPPUNIT_ASSERT_EQUAL(4096, (int)f.size());
}
void FileTest::testMkdir() {
string dir = "/tmp/aria2test2/test";
File d(dir);
if(d.exists()) {
CPPUNIT_ASSERT(d.remove());
}
CPPUNIT_ASSERT(!d.exists());
CPPUNIT_ASSERT(d.mkdirs());
CPPUNIT_ASSERT(d.exists());
// this test failes because d.mkdir returns false when the directory is
// already exists.
CPPUNIT_ASSERT(!d.mkdirs());
}
void FileTest::testGetDirname()
{
File f("/tmp/dist/aria2.tar.bz2");
CPPUNIT_ASSERT_EQUAL(string("/tmp/dist"), f.getDirname());
}
void FileTest::testGetBasename()
{
File f("/tmp/dist/aria2.tar.bz2");
CPPUNIT_ASSERT_EQUAL(string("aria2.tar.bz2"), f.getBasename());
}
|