summaryrefslogtreecommitdiffstats
path: root/src/cmd/vac/rtest.c
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2003-11-23 17:55:34 +0000
committerrsc <devnull@localhost>2003-11-23 17:55:34 +0000
commit7763a61a3582ef330bca54f225e8ec5325fbd35e (patch)
tree952957eef4d70ecbd30c58e3a0dacd6b3a753a54 /src/cmd/vac/rtest.c
parent7a4ee46d253e291044bba2d0c54b818b67ac013c (diff)
downloadplan9port-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.c71
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();
+}