diff options
Diffstat (limited to 'user')
| -rw-r--r-- | user/usertests.c | 30 | 
1 files changed, 30 insertions, 0 deletions
diff --git a/user/usertests.c b/user/usertests.c index 4ab34da..968034a 100644 --- a/user/usertests.c +++ b/user/usertests.c @@ -2738,6 +2738,36 @@ diskfull(char *s)      close(fd);    } +  // now that there are no free blocks, test that dirlink() +  // merely fails (doesn't panic) if it can't extend +  // directory content. +  int nzz = 128; +  for(int i = 0; i < nzz; i++){ +    char name[32]; +    name[0] = 'z'; +    name[1] = 'z'; +    name[2] = '0' + (i / 32); +    name[3] = '0' + (i % 32); +    name[4] = '\0'; +    unlink(name); +    int fd = open(name, O_CREATE|O_RDWR|O_TRUNC); +    if(fd < 0){ +      printf("%s: could not create file %s\n", s, name); +      break; +    } +    close(fd); +  } + +  for(int i = 0; i < nzz; i++){ +    char name[32]; +    name[0] = 'z'; +    name[1] = 'z'; +    name[2] = '0' + (i / 32); +    name[3] = '0' + (i % 32); +    name[4] = '\0'; +    unlink(name); +  } +    for(int i = 0; i < fi; i++){      char name[32];      name[0] = 'b';  | 
