summaryrefslogtreecommitdiffstats
path: root/src/util/lmdb_cache_test_1.sh
blob: f5d4767357f472423418652c3831f5ee2c576fd1 (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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/bin/sh

# Torture test: run update and purge operations in parallel processes.
# This will result in some purge operations not finding all entries,
# but the final sequential purge should eliminate all.

set -e

rm -f foo.lmdb
./dict_cache <<EOF
lmdb_map_size 20000
cache lmdb:foo
EOF

(./dict_cache <<EOF
cache lmdb:foo
update x ${1-10000}
run 
update y ${1-10000}
purge x
run 
purge y
run 
EOF
) &

(./dict_cache <<EOF
cache lmdb:foo
update a ${1-10000}
run 
update b ${1-10000}
purge a
run 
purge b
run 
EOF
) &

wait

./dict_cache <<EOF
cache lmdb:foo
purge a
run
purge b
run
purge x
run
purge y
run
EOF

../../bin/postmap -s lmdb:foo | diff /dev/null -

rm -f foo.lmdb