Newer
Older
char buf[2000];
char *echo_args[] = { "echo", "hello", "goodbye", 0 };
}
void
writetest(void)
{
int fd;
int i;
fd = open("small", O_CREATE|O_RDWR);
printf(stdout, "error: creat small failed!\n");
exit();
}
for (i = 0; i < 100; i++) {
if (write (fd, "aaaaaaaaaa", 10) != 10) {
printf(stdout, "error: write aa %d new file failed\n", i);
printf(stdout, "error: write bb %d new file failed\n", i);
printf(stdout, "error: open small failed!\n");
exit();
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
if (unlink("small") < 0) {
printf(stdout, "unlink small failed\n");
exit();
}
}
void
writetest1(void)
{
int i, fd, n;
printf(stdout, "big files\n");
fd = open("big", O_CREATE|O_RDWR);
if(fd < 0){
printf(stdout, "error: creat big failed!\n");
exit();
}
for (i = 0; i < MAXFILE; i++) {
((int *) buf)[0] = i;
if (write (fd, buf, 512) != 512) {
printf(stdout, "error: write big file failed\n", i);
exit();
}
}
close(fd);
fd = open("big", O_RDONLY);
if(fd < 0){
printf(stdout, "error: open big failed!\n");
exit();
}
n = 0;
while (1) {
i = read(fd, buf, 512);
if (i == 0) {
if (n == MAXFILE - 1) {
printf(stdout, "read only %d blocks from big", n);
exit();
}
break;
} else if (i != 512) {
printf(stdout, "read failed %d\n", i);
exit();
}
if (((int *)buf)[0] != n) {
printf(stdout, "read content of block %d is %d\n", n, ((int *)buf)[0]);
exit();
}
n++;
}
close(fd);
if (unlink("big") < 0) {
printf(stdout, "unlink big failed\n");
exit();
}
}
void
createtest(void)
{
int i, fd;
name[0] = 'a';
name[2] = '\0';
for (i = 0; i < 52; i++) {
name[1] = '0' + i;
fd = open(name, O_CREATE|O_RDWR);
close(fd);
}
name[0] = 'a';
name[2] = '\0';
for (i = 0; i < 52; i++) {
name[1] = '0' + i;
unlink(name);
}
exit();
}
if (chdir("dir0") < 0) {
printf(stdout, "chdir dir0 failed\n");
exit();
}
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
if (chdir("..") < 0) {
printf(stdout, "chdir .. failed\n");
exit ();
}
if (unlink("dir0") < 0) {
printf(stdout, "unlink dir0 failed\n");
exit();
}
}
void
exectest(void)
{
if (exec("echo", echo_args) < 0) {
printf(stdout, "exec echo failed\n");
exit();
}
if (exec("cat", cat_args) < 0) {
printf(stdout, "exec cat failed\n");
exit();
}
}
int
main(void)
{
printf(stdout, "userfs is running\n");
opentest();
writetest();
writetest1();
createtest();
exectest();