summaryrefslogtreecommitdiff
path: root/test/replay.py
blob: 52ef90f5ed3ffa130e7424d9dddd0de7f7afe514 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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)