diff options
Diffstat (limited to 'test/replay.py')
-rwxr-xr-x | test/replay.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/test/replay.py b/test/replay.py new file mode 100755 index 0000000..52ef90f --- /dev/null +++ b/test/replay.py @@ -0,0 +1,40 @@ +#!/usr/bin/python + +import permdb +import base64 +import sys + +class PermDB: + def __init__(self, path, write_enabled=True): + self.permdbobj = permdb.alloc(path, write_enabled) + def get(self, key): + return permdb.getvalue(self.permdbobj, key) + def add(self, key, value): + return permdb.addvalue(self.permdbobj, key, value) + def commit(self): + permdb.committree(self.permdbobj) + +import os + +try: + os.remove("testreplaydb") +except OSError: + pass +try: + os.remove("testreplaydb.idx") +except OSError: + pass + +db = PermDB("testreplaydb") + +for line in open(sys.argv[1]): + line = line.rstrip() + if line == "commit": + db.commit() + continue + k_v_line = line.split(" ") + assert len(k_v_line) == 2 + key = base64.b16decode(k_v_line[0]) + valuelen = int(k_v_line[1]) + value = valuelen * "\0" + db.add(key, value) |