From c0d0492be27e0a19d2538cebba53b90e75ee40b0 Mon Sep 17 00:00:00 2001 From: Magnus Ahltorp Date: Thu, 16 Mar 2017 14:52:42 +0100 Subject: Test permdb filebuffer boundary reads --- test/replay.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100755 test/replay.py (limited to 'test/replay.py') 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) -- cgit v1.1