2
2
3
3
from ledger .compact_merkle_tree import CompactMerkleTree
4
4
from ledger .ledger import Ledger
5
- from ledger .test .test_file_hash_store import nodesLeaves , \
6
- generateHashes
7
-
5
+ from ledger .test .test_file_hash_store import nodesLeaves
8
6
from plenum .persistence .leveldb_hash_store import LevelDbHashStore
7
+ from plenum .persistence .rocksdb_hash_store import RocksDbHashStore
8
+
9
9
10
+ @pytest .yield_fixture (scope = "module" , params = ['rocksdb' , 'leveldb' ])
11
+ def hashStore (request , tmpdir_factory ):
12
+ if request .param == 'rocksdb' :
13
+ hs = RocksDbHashStore (tmpdir_factory .mktemp ('' ).strpath )
14
+ else :
15
+ hs = LevelDbHashStore (tmpdir_factory .mktemp ('' ).strpath )
10
16
11
- @pytest .yield_fixture (scope = "module" )
12
- def leveldbHashStore (tdir ):
13
- hs = LevelDbHashStore (tdir )
14
17
cleanup (hs )
15
18
yield hs
16
19
hs .close ()
@@ -21,33 +24,33 @@ def cleanup(hs):
21
24
hs .leafCount = 0
22
25
23
26
24
- def testIndexFrom1 (leveldbHashStore ):
27
+ def testIndexFrom1 (hashStore ):
25
28
with pytest .raises (IndexError ):
26
- leveldbHashStore .readLeaf (0 )
29
+ hashStore .readLeaf (0 )
27
30
28
31
29
- def testReadWrite (leveldbHashStore , nodesLeaves ):
32
+ def testReadWrite (hashStore , nodesLeaves ):
30
33
nodes , leaves = nodesLeaves
31
34
for node in nodes :
32
- leveldbHashStore .writeNode (node )
35
+ hashStore .writeNode (node )
33
36
for leaf in leaves :
34
- leveldbHashStore .writeLeaf (leaf )
35
- onebyone = [leveldbHashStore .readLeaf (i + 1 ) for i in range (10 )]
36
- multiple = leveldbHashStore .readLeafs (1 , 10 )
37
+ hashStore .writeLeaf (leaf )
38
+ onebyone = [hashStore .readLeaf (i + 1 ) for i in range (10 )]
39
+ multiple = hashStore .readLeafs (1 , 10 )
37
40
assert onebyone == leaves
38
41
assert onebyone == multiple
39
42
40
43
41
- def testRecoverLedgerFromHashStore (leveldbHashStore , tdir ):
42
- cleanup (leveldbHashStore )
43
- tree = CompactMerkleTree (hashStore = leveldbHashStore )
44
+ def testRecoverLedgerFromHashStore (hashStore , tdir ):
45
+ cleanup (hashStore )
46
+ tree = CompactMerkleTree (hashStore = hashStore )
44
47
ledger = Ledger (tree = tree , dataDir = tdir )
45
48
for d in range (10 ):
46
49
ledger .add (str (d ).encode ())
47
50
updatedTree = ledger .tree
48
51
ledger .stop ()
49
52
50
- tree = CompactMerkleTree (hashStore = leveldbHashStore )
53
+ tree = CompactMerkleTree (hashStore = hashStore )
51
54
restartedLedger = Ledger (tree = tree , dataDir = tdir )
52
55
assert restartedLedger .size == ledger .size
53
56
assert restartedLedger .root_hash == ledger .root_hash
0 commit comments