Skip to content

Commit

Permalink
check unlink of non-empty directory
Browse files Browse the repository at this point in the history
  • Loading branch information
rsc committed Aug 22, 2007
1 parent bd39955 commit c88bf23
Showing 1 changed file with 27 additions and 5 deletions.
32 changes: 27 additions & 5 deletions usertests.c
Original file line number Diff line number Diff line change
Expand Up @@ -782,6 +782,11 @@ subdir(void)
}
write(fd, "ff", 2);
close(fd);

if(unlink("dd") >= 0){
printf(1, "unlink dd (non-empty dir) succeeded!\n");
exit();
}

if(mkdir("/dd/dd") != 0){
printf(1, "subdir mkdir dd/dd failed\n");
Expand Down Expand Up @@ -817,6 +822,10 @@ subdir(void)
printf(1, "unlink dd/dd/ff failed\n");
exit();
}
if(open("dd/dd/ff", O_RDONLY) >= 0){
printf(1, "open (unlinked) dd/dd/ff succeeded\n");
exit();
}

if(chdir("dd") != 0){
printf(1, "chdir dd failed\n");
Expand All @@ -826,6 +835,10 @@ subdir(void)
printf(1, "chdir dd/../../dd failed\n");
exit();
}
if(chdir("dd/../../../dd") != 0){
printf(1, "chdir dd/../../dd failed\n");
exit();
}
if(chdir("./..") != 0){
printf(1, "chdir ./.. failed\n");
exit();
Expand All @@ -842,8 +855,8 @@ subdir(void)
}
close(fd);

if(open("dd/dd/ff", 0) >= 0){
printf(1, "open dd/dd/ff succeeded!\n");
if(open("dd/dd/ff", O_RDONLY) >= 0){
printf(1, "open (unlinked) dd/dd/ff succeeded!\n");
exit();
}

Expand Down Expand Up @@ -916,9 +929,18 @@ subdir(void)
printf(1, "unlink dd/ff failed\n");
exit();
}

// unlink dd/dd
// unlink dd
if(unlink("dd") == 0){
printf(1, "unlink non-empty dd succeeded!\n");
exit();
}
if(unlink("dd/dd") < 0){
printf(1, "unlink dd/dd failed\n");
exit();
}
if(unlink("dd") < 0){
printf(1, "unlink dd failed\n");
exit();
}

printf(1, "subdir ok\n");
}
Expand Down

0 comments on commit c88bf23

Please sign in to comment.