summaryrefslogtreecommitdiff
path: root/test/replay.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/replay.py')
-rwxr-xr-xtest/replay.py40
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)