diff options
| author | rsc <devnull@localhost> | 2003-11-23 17:55:34 +0000 |
|---|---|---|
| committer | rsc <devnull@localhost> | 2003-11-23 17:55:34 +0000 |
| commit | 7763a61a3582ef330bca54f225e8ec5325fbd35e (patch) | |
| tree | 952957eef4d70ecbd30c58e3a0dacd6b3a753a54 /src/cmd/vac/rtest.c | |
| parent | 7a4ee46d253e291044bba2d0c54b818b67ac013c (diff) | |
| download | plan9port-7763a61a3582ef330bca54f225e8ec5325fbd35e.tar.gz plan9port-7763a61a3582ef330bca54f225e8ec5325fbd35e.zip | |
start thinking about vac -- doesn't build yet
Diffstat (limited to 'src/cmd/vac/rtest.c')
| -rw-r--r-- | src/cmd/vac/rtest.c | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/src/cmd/vac/rtest.c b/src/cmd/vac/rtest.c new file mode 100644 index 00000000..d45cd0fe --- /dev/null +++ b/src/cmd/vac/rtest.c @@ -0,0 +1,71 @@ +#include "stdinc.h" + +enum { + Nblock = 300000, + BlockSize = 8*1024, +}; + +uchar data[Nblock*VtScoreSize]; +int rflag; +int nblock = 10000; +int perm[Nblock]; + +void +main(int argc, char *argv[]) +{ + VtSession *z; + int i, j, t; + int start; + uchar buf[BlockSize]; + + srand(time(0)); + + ARGBEGIN{ + case 'r': + rflag++; + break; + case 'n': + nblock = atoi(ARGF()); + break; + }ARGEND + + for(i=0; i<nblock; i++) + perm[i] = i; + + if(rflag) { + for(i=0; i<nblock; i++) { + j = nrand(nblock); + t = perm[j]; + perm[j] = perm[i]; + perm[i] = t; + } + } + + if(readn(0, data, VtScoreSize*nblock) < VtScoreSize*nblock) + sysfatal("read failed: %r"); + + vtAttach(); + + z = vtDial("iolaire2"); + if(z == nil) + sysfatal("cound not connect to venti"); + if(!vtConnect(z, 0)) + vtFatal("vtConnect: %s", vtGetError()); + + print("starting\n"); + + start = times(0); + + if(rflag && nblock > 10000) + nblock = 10000; + + for(i=0; i<nblock; i++) { + if(vtRead(z, data+perm[i]*VtScoreSize, VtDataType, buf, BlockSize) < 0) + vtFatal("vtRead failed: %d: %s", i, vtGetError()); + } + + print("time = %f\n", (times(0) - start)*0.001); + + vtClose(z); + vtDetach(); +} |
