summaryrefslogtreecommitdiff
path: root/fstests.c
diff options
context:
space:
mode:
Diffstat (limited to 'fstests.c')
-rw-r--r--fstests.c66
1 files changed, 65 insertions, 1 deletions
diff --git a/fstests.c b/fstests.c
index d6356ac..ac9478e 100644
--- a/fstests.c
+++ b/fstests.c
@@ -412,8 +412,9 @@ bigdir()
void
subdir()
{
- int fd;
+ int fd, cc;
+ unlink("ff");
if(mkdir("dd") != 0){
puts("subdir mkdir dd failed\n");
exit();
@@ -440,6 +441,18 @@ subdir()
write(fd, "FF", 2);
close(fd);
+ fd = open("dd/dd/../ff", 0);
+ if(fd < 0){
+ puts("open dd/dd/../ff failed\n");
+ exit();
+ }
+ cc = read(fd, buf, sizeof(buf));
+ if(cc != 2 || buf[0] != 'f'){
+ puts("dd/dd/../ff wrong content\n");
+ exit();
+ }
+ close(fd);
+
if(link("dd/dd/ff", "dd/dd/ffff") != 0){
puts("link dd/dd/ff dd/dd/ffff failed\n");
exit();
@@ -487,6 +500,18 @@ subdir()
puts("create dd/xx/ff succeeded!\n");
exit();
}
+ if(open("dd", O_CREATE) >= 0){
+ puts("create dd succeeded!\n");
+ exit();
+ }
+ if(open("dd", O_RDWR) >= 0){
+ puts("open dd rdwr succeeded!\n");
+ exit();
+ }
+ if(open("dd", O_WRONLY) >= 0){
+ puts("open dd wronly succeeded!\n");
+ exit();
+ }
if(link("dd/ff/ff", "dd/dd/xx") == 0){
puts("link dd/ff/ff dd/dd/xx succeeded!\n");
exit();
@@ -597,11 +622,50 @@ bigfile()
puts("bigfile ok\n");
}
+void
+fourteen()
+{
+ int fd;
+
+ if(mkdir("12345678901234") != 0){
+ puts("mkdir 12345678901234 failed\n");
+ exit();
+ }
+ if(mkdir("12345678901234/123456789012345") != 0){
+ puts("mkdir 12345678901234/123456789012345 failed\n");
+ exit();
+ }
+ fd = open("123456789012345/123456789012345/123456789012345", O_CREATE);
+ if(fd < 0){
+ puts("create 123456789012345/123456789012345/123456789012345 failed\n");
+ exit();
+ }
+ close(fd);
+ fd = open("12345678901234/12345678901234/12345678901234", 0);
+ if(fd < 0){
+ puts("open 12345678901234/12345678901234/12345678901234 failed\n");
+ exit();
+ }
+ close(fd);
+
+ if(mkdir("12345678901234/12345678901234") == 0){
+ puts("mkdir 12345678901234/12345678901234 succeeded!\n");
+ exit();
+ }
+ if(mkdir("123456789012345/12345678901234") == 0){
+ puts("mkdir 12345678901234/123456789012345 succeeded!\n");
+ exit();
+ }
+
+ puts("fourteen ok\n");
+}
+
int
main(int argc, char *argv[])
{
puts("fstests starting\n");
+ fourteen();
bigfile();
subdir();
// bigdir(); // slow