diff options
author | rtm <rtm> | 2006-08-24 19:21:19 +0000 |
---|---|---|
committer | rtm <rtm> | 2006-08-24 19:21:19 +0000 |
commit | bcfb84b6a9077b5e035325b3396c062d1f183ac4 (patch) | |
tree | 5a08eec2343a00631160aa42644ebf1d7a71a45c /fstests.c | |
parent | 1be766853771bda6023b8024041453413fb777bb (diff) | |
download | xv6-labs-bcfb84b6a9077b5e035325b3396c062d1f183ac4.tar.gz xv6-labs-bcfb84b6a9077b5e035325b3396c062d1f183ac4.tar.bz2 xv6-labs-bcfb84b6a9077b5e035325b3396c062d1f183ac4.zip |
big directory test
Diffstat (limited to 'fstests.c')
-rw-r--r-- | fstests.c | 45 |
1 files changed, 45 insertions, 0 deletions
@@ -365,11 +365,56 @@ concreate() puts("concreate ok\n"); } +// directory that uses indirect blocks +void +bigdir() +{ + int i, fd; + char name[10]; + + unlink("bd"); + + fd = open("bd", O_CREATE); + if(fd < 0){ + puts("bigdir create failed\n"); + exit(); + } + close(fd); + + for(i = 0; i < 500; i++){ + name[0] = 'x'; + name[1] = '0' + (i / 64); + name[2] = '0' + (i % 64); + name[3] = '\0'; + if(link("bd", name) != 0){ + puts("bigdir link failed\n"); + exit(); + } + puts("c"); + } + + unlink("bd"); + for(i = 0; i < 500; i++){ + name[0] = 'x'; + name[1] = '0' + (i / 64); + name[2] = '0' + (i % 64); + name[3] = '\0'; + if(unlink(name) != 0){ + puts("bigdir unlink failed"); + exit(); + } + puts("d"); + } + + puts("bigdir ok\n"); +} + int main(int argc, char *argv[]) { puts("fstests starting\n"); + bigdir(); concreate(); linktest(); unlinkread(); |