summaryrefslogtreecommitdiff
path: root/test/permdbtest.erl
diff options
context:
space:
mode:
Diffstat (limited to 'test/permdbtest.erl')
-rwxr-xr-xtest/permdbtest.erl36
1 files changed, 24 insertions, 12 deletions
diff --git a/test/permdbtest.erl b/test/permdbtest.erl
index 1c43861..5d0453b 100755
--- a/test/permdbtest.erl
+++ b/test/permdbtest.erl
@@ -14,7 +14,7 @@ timeprint(Time) ->
io_lib:format("~.2fs", [Time/1000000]).
testinit(Filename) ->
- permdb:start_link(testdb, Filename).
+ permdb:start_link(testdb, Filename, write).
teststop() ->
permdb:stop(testdb).
@@ -24,42 +24,48 @@ constructdata(VSeed, Size) ->
B = binary:part(VSeed, 0, Size rem 32),
<<A/binary, B/binary>>.
-getvalue_loop([], _Port, _Datasize) ->
+getvalue_loop([], _Port, _Datasize, _DB) ->
none;
-getvalue_loop([{K, VSeed}|Rest], Port, Datasize) ->
+getvalue_loop([{K, VSeed}|Rest], Port, Datasize, DB) ->
V = case VSeed of
noentry ->
noentry;
_ ->
constructdata(VSeed, Datasize)
end,
- case permdb:getvalue(testdb, K) of
+ case permdb:getvalue(DB, K) of
V ->
- getvalue_loop(Rest, Port, Datasize);
+ getvalue_loop(Rest, Port, Datasize, DB);
VOther ->
io:format("expected: ~p got: ~p~nkey: ~p~n", [V, VOther, K]),
exit(mismatch)
end.
-addvalue_loop([], _Port, _Datasize) ->
+addvalue_loop([], _Port, _Datasize, _DB) ->
none;
-addvalue_loop([{K, VSeed}|Rest], Port, Datasize) ->
+addvalue_loop([{K, VSeed}|Rest], Port, Datasize, DB) ->
V = constructdata(VSeed, Datasize),
- case permdb:addvalue(testdb, K, V) of
+ case permdb:addvalue(DB, K, V) of
ok ->
- addvalue_loop(Rest, Port, Datasize);
+ addvalue_loop(Rest, Port, Datasize, DB);
Other ->
io:format("expected: 0 or 1 got: ~p~n", [Other]),
exit(mismatch)
end.
testget(_Filename, TestData, Datasize) ->
- getvalue_loop(TestData, none, Datasize),
+ testget(_Filename, TestData, Datasize, testdb).
+
+testget(_Filename, TestData, Datasize, DB) ->
+ getvalue_loop(TestData, none, Datasize, DB),
ok.
testadd(_Filename, TestData, Datasize) ->
- addvalue_loop(TestData, none, Datasize),
- case permdb:commit(testdb) of
+ testadd(_Filename, TestData, Datasize, testdb).
+
+testadd(_Filename, TestData, Datasize, DB) ->
+ addvalue_loop(TestData, none, Datasize, DB),
+ case permdb:commit(DB) of
<<0>> ->
ok;
Other ->
@@ -138,7 +144,13 @@ main([]) ->
stop(),
testinit(Filename),
+
+ permdb:start_link(testdb_ro, Filename, read),
+
testget(Filename, gentestdata(1+2+3+4), 99),
+ testadd(Filename, gentestdata(1+2+3+4+5), 99),
+ testget(Filename, gentestdata(1+2+3+4+5), 99, testdb_ro),
+ permdb:stop(testdb_ro),
stop(),
ok.