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
41
42
43
44
45
|
'''
Tests SoledadClient/SQLCipher interaction
'''
import pytest
from twisted.internet.defer import gatherResults
def load_up(client, amount, size, defer=True):
content = 'x'*size
deferreds = []
# create a bunch of local documents
for i in xrange(amount):
d = client.create_doc({'content': content})
deferreds.append(d)
if defer:
d = gatherResults(deferreds)
d.addCallback(lambda _: None)
return d
def build_test_sqlcipher_async_create(amount, size):
@pytest.inlineCallbacks
@pytest.mark.benchmark(group="test_sqlcipher_async_create")
def test(soledad_client, txbenchmark):
client = soledad_client()
yield txbenchmark(load_up, client, amount, size)
return test
def build_test_sqlcipher_create(amount, size):
@pytest.mark.benchmark(group="test_sqlcipher_create")
def test(soledad_client, benchmark):
client = soledad_client()._dbsyncer
benchmark(load_up, client, amount, size, defer=False)
return test
test_async_create_20_500k = build_test_sqlcipher_async_create(20, 500*1000)
test_async_create_100_100k = build_test_sqlcipher_async_create(100, 100*1000)
test_async_create_1000_10k = build_test_sqlcipher_async_create(1000, 10*1000)
# synchronous
test_create_20_500k = build_test_sqlcipher_create(20, 500*1000)
test_create_100_100k = build_test_sqlcipher_create(100, 100*1000)
test_create_1000_10k = build_test_sqlcipher_create(1000, 10*1000)
|