diff options
author | Magnus Ahltorp <map@kth.se> | 2016-11-26 02:48:11 +0100 |
---|---|---|
committer | Magnus Ahltorp <map@kth.se> | 2016-11-26 02:48:11 +0100 |
commit | 5fab0fd188242f08431dee0bff62a3028d262b6d (patch) | |
tree | 548ef788ad82776d258ded87d4f4922edff52748 /test/permdbtest.erl | |
parent | 8826eb502c73df3a512a2d257f4264d68a10e1c8 (diff) |
Added RO mode to permdb
Diffstat (limited to 'test/permdbtest.erl')
-rwxr-xr-x | test/permdbtest.erl | 36 |
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. |