diff options
author | Magnus Ahltorp <map@kth.se> | 2017-03-16 14:52:42 +0100 |
---|---|---|
committer | Magnus Ahltorp <map@kth.se> | 2017-03-16 14:52:42 +0100 |
commit | c0d0492be27e0a19d2538cebba53b90e75ee40b0 (patch) | |
tree | 6b68d3ed4cedf7485f759f38c8dfae402ade79ff /test/replay.py | |
parent | d62f8189a2eb7be50353eef85073b8af6a3e8f79 (diff) |
Test permdb filebuffer boundary reads
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) |