Add ct test

Which passes
This commit is contained in:
Martin Sumner 2018-09-27 11:32:42 +01:00
parent cbd7713c71
commit 39e366a31b
2 changed files with 41 additions and 2 deletions

View file

@ -48,6 +48,7 @@
code_change/3, code_change/3,
book_start/1, book_start/1,
book_start/4, book_start/4,
book_plainstart/1,
book_put/5, book_put/5,
book_put/6, book_put/6,
book_tempput/7, book_tempput/7,
@ -357,6 +358,14 @@ book_start(Opts) ->
gen_server:start_link(?MODULE, [set_defaults(Opts)], []). gen_server:start_link(?MODULE, [set_defaults(Opts)], []).
-spec book_plainstart(list(tuple())) -> {ok, pid()}.
%% @doc
%% Start used in tests to start without linking
book_plainstart(Opts) ->
gen_server:start(?MODULE, [set_defaults(Opts)], []).
-spec book_tempput(pid(), key(), key(), any(), -spec book_tempput(pid(), key(), key(), any(),
leveled_codec:index_specs(), leveled_codec:index_specs(),
leveled_codec:tag(), integer()) -> ok|pause. leveled_codec:tag(), integer()) -> ok|pause.

View file

@ -11,7 +11,8 @@
space_clear_ondelete/1, space_clear_ondelete/1,
is_empty_test/1, is_empty_test/1,
many_put_fetch_switchcompression/1, many_put_fetch_switchcompression/1,
bigjournal_littlejournal/1 bigjournal_littlejournal/1,
safereaderror_startup/1
]). ]).
all() -> [ all() -> [
@ -24,7 +25,8 @@ all() -> [
space_clear_ondelete, space_clear_ondelete,
is_empty_test, is_empty_test,
many_put_fetch_switchcompression, many_put_fetch_switchcompression,
bigjournal_littlejournal bigjournal_littlejournal,
safereaderror_startup
]. ].
@ -873,3 +875,31 @@ many_put_fetch_switchcompression(_Config) ->
testutil:check_forobject(Bookie3, TestObject), testutil:check_forobject(Bookie3, TestObject),
testutil:check_formissingobject(Bookie3, "Bookie1", "MissingKey0123"), testutil:check_formissingobject(Bookie3, "Bookie1", "MissingKey0123"),
ok = leveled_bookie:book_destroy(Bookie3). ok = leveled_bookie:book_destroy(Bookie3).
safereaderror_startup(_Config) ->
RootPath = testutil:reset_filestructure(),
StartOpts1 = [{root_path, RootPath},
{compression_point, on_compact},
{max_journalsize, 1000}, {cache_size, 2060}],
{ok, Bookie1} = leveled_bookie:book_plainstart(StartOpts1),
B1 = <<98, 117, 99, 107, 101, 116, 51>>,
K1 =
<<38, 50, 201, 47, 167, 125, 57, 232, 84, 38, 14, 114, 24, 62,
12, 74>>,
Obj1 =
<<87, 150, 217, 230, 4, 81, 170, 68, 181, 224, 60, 232, 4, 74,
159, 12, 156, 56, 194, 181, 18, 158, 195, 207, 106, 191, 80,
111, 100, 81, 252, 248>>,
Obj2 =
<<86, 201, 253, 149, 213, 10, 32, 166, 33, 136, 42, 79, 103, 250,
139, 95, 42, 143, 161, 3, 185, 74, 149, 226, 232, 214, 183, 64,
69, 56, 167, 78>>,
ok = leveled_bookie:book_put(Bookie1, B1, K1, Obj1, []),
ok = leveled_bookie:book_put(Bookie1, B1, K1, Obj2, []),
exit(Bookie1, kill),
{ok, Bookie2} = leveled_bookie:book_start(StartOpts1),
{ok, ReadBack} = leveled_bookie:book_get(Bookie2, B1, K1),
io:format("Read back ~w", [ReadBack]),
true = ReadBack == Obj2,
ok = leveled_bookie:book_close(Bookie2).