From bcfb84b6a9077b5e035325b3396c062d1f183ac4 Mon Sep 17 00:00:00 2001 From: rtm Date: Thu, 24 Aug 2006 19:21:19 +0000 Subject: big directory test --- fstests.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) (limited to 'fstests.c') diff --git a/fstests.c b/fstests.c index e428519..d177ce9 100644 --- a/fstests.c +++ b/fstests.c @@ -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(); -- cgit v1.2.3