]> git.ozlabs.org Git - ccan/commitdiff
tdb: add mktdb tool.
authorRusty Russell <rusty@rustcorp.com.au>
Thu, 23 Sep 2010 07:20:30 +0000 (16:50 +0930)
committerRusty Russell <rusty@rustcorp.com.au>
Thu, 23 Sep 2010 07:20:30 +0000 (16:50 +0930)
ccan/tdb/tools/Makefile
ccan/tdb/tools/mktdb.c [new file with mode: 0644]

index 8febc40ff77505a0128885210e0604b0af2f077f..4dc5ceb0527f75febb027aebb70e26f45738db77 100644 (file)
@@ -2,7 +2,7 @@ LDLIBS:=../../tdb.o ../../hash.o
 CFLAGS:=-I../../.. -Wall -O3 #-g -pg
 LDFLAGS:=-L../../..
 
 CFLAGS:=-I../../.. -Wall -O3 #-g -pg
 LDFLAGS:=-L../../..
 
-default: replay_trace tdbtorture tdbdump tdbtool starvation
+default: replay_trace tdbtorture tdbdump tdbtool starvation mktdb
 
 benchmark: replay_trace
        @trap "rm -f /tmp/trace.$$$$" 0; for f in benchmarks/*.rz; do if runzip -k $$f -o /tmp/trace.$$$$ && echo -n "$$f": && ./replay_trace --quiet -n 5 replay.tdb /tmp/trace.$$$$ && rm /tmp/trace.$$$$; then rm -f /tmp/trace.$$$$; else exit 1; fi; done
 
 benchmark: replay_trace
        @trap "rm -f /tmp/trace.$$$$" 0; for f in benchmarks/*.rz; do if runzip -k $$f -o /tmp/trace.$$$$ && echo -n "$$f": && ./replay_trace --quiet -n 5 replay.tdb /tmp/trace.$$$$ && rm /tmp/trace.$$$$; then rm -f /tmp/trace.$$$$; else exit 1; fi; done
diff --git a/ccan/tdb/tools/mktdb.c b/ccan/tdb/tools/mktdb.c
new file mode 100644 (file)
index 0000000..ed0efcd
--- /dev/null
@@ -0,0 +1,29 @@
+#include <ccan/tdb/tdb.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <err.h>
+
+int main(int argc, char *argv[])
+{
+       unsigned int i, num_recs;
+       struct tdb_context *tdb;
+
+       if (argc != 3 || (num_recs = atoi(argv[2])) == 0)
+               errx(1, "Usage: mktdb <tdbfile> <numrecords>");
+
+       tdb = tdb_open(argv[1], 10007, TDB_DEFAULT, O_CREAT|O_TRUNC|O_RDWR, 0600);
+       if (!tdb)
+               err(1, "Opening %s", argv[1]);
+
+       for (i = 0; i < num_recs; i++) {
+               TDB_DATA d;
+
+               d.dptr = (void *)&i;
+               d.dsize = sizeof(i);
+               if (tdb_store(tdb, d, d, TDB_INSERT) != 0)
+                       err(1, "Failed to store record %i", i);
+       }
+       printf("Done\n");
+       return 0;
+}