diff options
author | Robert Morris <[email protected]> | 2011-08-12 09:25:39 -0400 |
---|---|---|
committer | Robert Morris <[email protected]> | 2011-08-12 09:25:39 -0400 |
commit | 2e59046362f532748711b9acaceee1cda969cc50 (patch) | |
tree | 82ab693a2fa6021d445915c169354b6833262d24 /usertests.c | |
parent | bd71a45046eb13797284216c43353b9b6c92f18c (diff) | |
download | xv6-labs-2e59046362f532748711b9acaceee1cda969cc50.tar.gz xv6-labs-2e59046362f532748711b9acaceee1cda969cc50.tar.bz2 xv6-labs-2e59046362f532748711b9acaceee1cda969cc50.zip |
log write() data
usertest for big write()s
push begin_trans/commit_trans down into syscalls
Diffstat (limited to 'usertests.c')
-rw-r--r-- | usertests.c | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/usertests.c b/usertests.c index 3bffadb..ba648a7 100644 --- a/usertests.c +++ b/usertests.c @@ -7,7 +7,7 @@ #include "traps.h" #include "memlayout.h" -char buf[2048]; +char buf[8192]; char name[3]; char *echoargv[] = { "echo", "ALL", "TESTS", "PASSED", 0 }; int stdout = 1; @@ -968,6 +968,36 @@ subdir(void) printf(1, "subdir ok\n"); } +// test writes that are larger than the log. +void +bigwrite(void) +{ + int fd, sz; + + printf(1, "bigwrite test\n"); + + unlink("bigwrite"); + for(sz = 499; sz < 12*512; sz += 471){ + fd = open("bigwrite", O_CREATE | O_RDWR); + if(fd < 0){ + printf(1, "cannot create bigwrite\n"); + exit(); + } + int i; + for(i = 0; i < 2; i++){ + int cc = write(fd, buf, sz); + if(cc != sz){ + printf(1, "write(%d) ret %d\n", sz, cc); + exit(); + } + } + close(fd); + unlink("bigwrite"); + } + + printf(1, "bigwrite ok\n"); +} + void bigfile(void) { @@ -1467,6 +1497,7 @@ main(int argc, char *argv[]) } close(open("usertests.ran", O_CREATE)); + bigwrite(); bigargtest(); bsstest(); sbrktest(); |