30,7 → 30,7 |
#include <stdio.h> |
#include <stdlib.h> |
#include <string.h> |
#include <vfs.h> |
#include <vfs/vfs.h> |
#include <unistd.h> |
#include <fcntl.h> |
#include <dirent.h> |
43,11 → 43,24 |
|
char *test_vfs1(bool quiet) |
{ |
if (mount("tmpfs", "/", "nulldev0") != EOK) |
return "mount() failed.\n"; |
if (!quiet) |
printf("mounted tmpfs on /.\n"); |
int rc; |
|
rc = mount("tmpfs", "/", "nulldev0"); |
switch (rc) { |
case EOK: |
if (!quiet) |
printf("mounted tmpfs on /\n"); |
break; |
case EBUSY: |
if (!quiet) |
printf("(INFO) something is already mounted on /\n"); |
break; |
default: |
if (!quiet) |
printf("(INFO) IPC returned errno %d\n", rc); |
return "mount() failed."; |
} |
|
if (mkdir("/mydir", 0) != 0) |
return "mkdir() failed.\n"; |
if (!quiet) |
73,23 → 86,57 |
|
char buf[10]; |
|
cnt = read(fd0, buf, sizeof(buf)); |
if (cnt < 0) |
return "read() failed.\n"; |
while ((cnt = read(fd0, buf, sizeof(buf)))) { |
if (cnt < 0) |
return "read() failed.\n"; |
if (!quiet) |
printf("read %d bytes: \"%.*s\", fd=%d\n", cnt, cnt, |
buf, fd0); |
} |
|
if (!quiet) |
printf("read %d bytes: \"%.*s\", fd=%d\n", cnt, cnt, buf, fd0); |
close(fd0); |
|
DIR *dirp; |
struct dirent *dp; |
|
if (!quiet) |
printf("scanning the root directory...\n"); |
|
dirp = opendir("/"); |
if (!dirp) |
return "opendir() failed."; |
return "opendir() failed\n"; |
while ((dp = readdir(dirp))) |
printf("discovered node %s in /\n", dp->d_name); |
closedir(dirp); |
|
if (rename("/mydir/myfile", "/mydir/yourfile")) |
return "rename() failed.\n"; |
|
if (!quiet) |
printf("renamed /mydir/myfile to /mydir/yourfile\n"); |
|
if (unlink("/mydir/yourfile")) |
return "unlink() failed.\n"; |
|
if (!quiet) |
printf("unlinked file /mydir/yourfile\n"); |
|
if (rmdir("/mydir")) |
return "rmdir() failed.\n"; |
|
if (!quiet) |
printf("removed directory /mydir\n"); |
|
if (!quiet) |
printf("scanning the root directory...\n"); |
|
dirp = opendir("/"); |
if (!dirp) |
return "opendir() failed\n"; |
while ((dp = readdir(dirp))) |
printf("discovered node %s in /\n", dp->d_name); |
closedir(dirp); |
|
return NULL; |
} |
|