Rebar and eunit changes

Initial rebar compile - which exposed eunit tets failures associated
with changes to file structures and filename references
This commit is contained in:
martinsumner 2016-09-19 18:50:11 +01:00
parent a1c970a66a
commit 4e28e4173c
6 changed files with 96 additions and 26 deletions

11
ebin/eleveleddb.app Normal file
View file

@ -0,0 +1,11 @@
{application,eleveleddb,
[{description,[]},
{vsn,"1"},
{registered,[]},
{applications,[kernel,stdlib]},
{mod,{eleveleddb_app,[]}},
{env,[]},
{modules,[eleveleddb_app,eleveleddb_sup,leveled_bookie,
leveled_cdb,leveled_clerk,leveled_inker,
leveled_iterator,leveled_penciller,leveled_rice,
leveled_sft]}]}.

12
src/eleveleddb.app.src Normal file
View file

@ -0,0 +1,12 @@
{application, eleveleddb,
[
{description, ""},
{vsn, "1"},
{registered, []},
{applications, [
kernel,
stdlib
]},
{mod, { eleveleddb_app, []}},
{env, []}
]}.

16
src/eleveleddb_app.erl Normal file
View file

@ -0,0 +1,16 @@
-module(eleveleddb_app).
-behaviour(application).
%% Application callbacks
-export([start/2, stop/1]).
%% ===================================================================
%% Application callbacks
%% ===================================================================
start(_StartType, _StartArgs) ->
eleveleddb_sup:start_link().
stop(_State) ->
ok.

27
src/eleveleddb_sup.erl Normal file
View file

@ -0,0 +1,27 @@
-module(eleveleddb_sup).
-behaviour(supervisor).
%% API
-export([start_link/0]).
%% Supervisor callbacks
-export([init/1]).
%% Helper macro for declaring children of supervisor
-define(CHILD(I, Type), {I, {I, start_link, []}, permanent, 5000, Type, [I]}).
%% ===================================================================
%% API functions
%% ===================================================================
start_link() ->
supervisor:start_link({local, ?MODULE}, ?MODULE, []).
%% ===================================================================
%% Supervisor callbacks
%% ===================================================================
init([]) ->
{ok, { {one_for_one, 5, 10}, []} }.

View file

@ -295,8 +295,8 @@ generate_randomkeys(Count, Acc, BucketLow, BRange) ->
RandKey = {{o,
"Bucket" ++ BNumber,
"Key" ++ KNumber},
Count + 1,
{active, infinity}, null},
{Count + 1,
{active, infinity}, null}},
generate_randomkeys(Count - 1, [RandKey|Acc], BucketLow, BRange).
choose_pid_toquery([ManEntry|_T], Key) when
@ -310,8 +310,8 @@ choose_pid_toquery([_H|T], Key) ->
find_randomkeys(_FList, 0, _Source) ->
ok;
find_randomkeys(FList, Count, Source) ->
K1 = leveled_sft:strip_to_keyonly(lists:nth(random:uniform(length(Source)),
Source)),
KV1 = lists:nth(random:uniform(length(Source)), Source),
K1 = leveled_bookie:strip_to_keyonly(KV1),
P1 = choose_pid_toquery(FList, K1),
FoundKV = leveled_sft:sft_get(P1, K1),
case FoundKV of
@ -319,7 +319,7 @@ find_randomkeys(FList, Count, Source) ->
io:format("Failed to find ~w in ~w~n", [K1, P1]),
?assertMatch(true, false);
_ ->
Found = leveled_sft:strip_to_keyonly(FoundKV),
Found = leveled_bookie:strip_to_keyonly(FoundKV),
io:format("success finding ~w in ~w~n", [K1, P1]),
?assertMatch(K1, Found)
end,

View file

@ -400,20 +400,22 @@ build_manifest(ManifestFilenames,
OtherSQNs_imm = sequencenumbers_fromfilenames(UnremovedJournalFiles,
JournalRegex1,
'SQN'),
Manifest1 = lists:foldl(fun(X, Acc) ->
if
X > JournalSQN1
->
FN = "nursery_" ++
integer_to_list(X)
++ "." ++
?JOURNAL_FILEX,
add_to_manifest(Acc, {X, FN});
true
-> Acc
end end,
ConfirmedManifest,
lists:sort(OtherSQNs_imm)),
ExtendManifestFun = fun(X, Acc) ->
if
X > JournalSQN1
->
FN = filepath(RootPath, journal_dir)
++ "nursery_" ++
integer_to_list(X)
++ "." ++
?JOURNAL_FILEX,
add_to_manifest(Acc, {X, FN});
true
-> Acc
end end,
Manifest1 = lists:foldl(ExtendManifestFun,
ConfirmedManifest,
lists:sort(OtherSQNs_imm)),
%% Enrich the manifest so it contains the Pid of any of the immutable
%% entries
@ -648,7 +650,7 @@ build_dummy_journal() ->
ok = leveled_cdb:cdb_put(J2, {3, K1}, term_to_binary({V3, []})),
ok = leveled_cdb:cdb_put(J2, {4, K4}, term_to_binary({V4, []})),
ok = leveled_cdb:cdb_close(J2),
Manifest = {2, [{1, "nursery_1.cdb"}], []},
Manifest = [{1, "../test/journal/journal_files/nursery_1.cdb"}],
ManifestBin = term_to_binary(Manifest),
{ok, MF1} = file:open(filename:join(ManifestFP, "1.man"),
[binary, raw, read, write]),
@ -669,14 +671,15 @@ simple_buildmanifest_test() ->
RootPath = "../test/journal",
build_dummy_journal(),
Res = build_manifest(["1.man"],
["nursery_1.cdb", "nursery_3.pnd"],
["../test/journal/journal_files/nursery_1.cdb",
"../test/journal/journal_files/nursery_3.pnd"],
fun simple_manifest_reader/2,
RootPath),
io:format("Build manifest output is ~w~n", [Res]),
{Man, {ActJournal, ActJournalSQN}, HighSQN, ManSQN} = Res,
?assertMatch(HighSQN, 4),
?assertMatch(ManSQN, 1),
?assertMatch([{1, "nursery_1.cdb", _}], Man),
?assertMatch([{1, "../test/journal/journal_files/nursery_1.cdb", _}], Man),
{ActSQN, _ActK} = leveled_cdb:cdb_lastkey(ActJournal),
?assertMatch(ActSQN, 4),
?assertMatch(ActJournalSQN, 3),
@ -699,16 +702,17 @@ another_buildmanifest_test() ->
ok = leveled_cdb:cdb_close(NewActiveJN),
%% Test setup - now build manifest
Res = build_manifest(["1.man"],
["nursery_1.cdb",
"nursery_3.cdb",
"nursery_5.pnd"],
["../test/journal/journal_files/nursery_1.cdb",
"../test/journal/journal_files/nursery_3.cdb",
"../test/journal/journal_files/nursery_5.pnd"],
fun simple_manifest_reader/2,
RootPath),
io:format("Build manifest output is ~w~n", [Res]),
{Man, {ActJournal, ActJournalSQN}, HighSQN, ManSQN} = Res,
?assertMatch(HighSQN, 6),
?assertMatch(ManSQN, 1),
?assertMatch([{3, "nursery_3.cdb", _}, {1, "nursery_1.cdb", _}], Man),
?assertMatch([{3, "../test/journal/journal_files/nursery_3.cdb", _},
{1, "../test/journal/journal_files/nursery_1.cdb", _}], Man),
{ActSQN, _ActK} = leveled_cdb:cdb_lastkey(ActJournal),
?assertMatch(ActSQN, 6),
?assertMatch(ActJournalSQN, 5),