Unit test - GC
End up with right number of manifest files
This commit is contained in:
parent
a72d1cc941
commit
93f16a6297
1 changed files with 31 additions and 1 deletions
|
@ -869,6 +869,9 @@ seconds_now() ->
|
||||||
-ifdef(TEST).
|
-ifdef(TEST).
|
||||||
|
|
||||||
initial_setup() ->
|
initial_setup() ->
|
||||||
|
initial_setup(single_change).
|
||||||
|
|
||||||
|
initial_setup(Changes) ->
|
||||||
E1 = #manifest_entry{start_key={i, "Bucket1", {"Idx1", "Fld1"}, "K8"},
|
E1 = #manifest_entry{start_key={i, "Bucket1", {"Idx1", "Fld1"}, "K8"},
|
||||||
end_key={i, "Bucket1", {"Idx1", "Fld9"}, "K93"},
|
end_key={i, "Bucket1", {"Idx1", "Fld9"}, "K93"},
|
||||||
filename="Z1",
|
filename="Z1",
|
||||||
|
@ -899,7 +902,10 @@ initial_setup() ->
|
||||||
filename="Z6",
|
filename="Z6",
|
||||||
owner="pid_z6",
|
owner="pid_z6",
|
||||||
bloom=none},
|
bloom=none},
|
||||||
|
initial_setup(Changes, E1, E2, E3, E4, E5, E6).
|
||||||
|
|
||||||
|
|
||||||
|
initial_setup(single_change, E1, E2, E3, E4, E5, E6) ->
|
||||||
Man0 = new_manifest(),
|
Man0 = new_manifest(),
|
||||||
|
|
||||||
Man1 = insert_manifest_entry(Man0, 1, 1, E1),
|
Man1 = insert_manifest_entry(Man0, 1, 1, E1),
|
||||||
|
@ -909,8 +915,20 @@ initial_setup() ->
|
||||||
Man5 = insert_manifest_entry(Man4, 1, 2, E5),
|
Man5 = insert_manifest_entry(Man4, 1, 2, E5),
|
||||||
Man6 = insert_manifest_entry(Man5, 1, 2, E6),
|
Man6 = insert_manifest_entry(Man5, 1, 2, E6),
|
||||||
?assertMatch(Man6, insert_manifest_entry(Man6, 1, 2, [])),
|
?assertMatch(Man6, insert_manifest_entry(Man6, 1, 2, [])),
|
||||||
|
{Man0, Man1, Man2, Man3, Man4, Man5, Man6};
|
||||||
|
initial_setup(multi_change, E1, E2, E3, E4, E5, E6) ->
|
||||||
|
Man0 = new_manifest(),
|
||||||
|
|
||||||
|
Man1 = insert_manifest_entry(Man0, 1, 1, E1),
|
||||||
|
Man2 = insert_manifest_entry(Man1, 2, 1, E2),
|
||||||
|
Man3 = insert_manifest_entry(Man2, 3, 1, E3),
|
||||||
|
Man4 = insert_manifest_entry(Man3, 4, 2, E4),
|
||||||
|
Man5 = insert_manifest_entry(Man4, 5, 2, E5),
|
||||||
|
Man6 = insert_manifest_entry(Man5, 6, 2, E6),
|
||||||
|
?assertMatch(Man6, insert_manifest_entry(Man6, 6, 2, [])),
|
||||||
{Man0, Man1, Man2, Man3, Man4, Man5, Man6}.
|
{Man0, Man1, Man2, Man3, Man4, Man5, Man6}.
|
||||||
|
|
||||||
|
|
||||||
changeup_setup(Man6) ->
|
changeup_setup(Man6) ->
|
||||||
E1 = #manifest_entry{start_key={i, "Bucket1", {"Idx1", "Fld1"}, "K8"},
|
E1 = #manifest_entry{start_key={i, "Bucket1", {"Idx1", "Fld1"}, "K8"},
|
||||||
end_key={i, "Bucket1", {"Idx1", "Fld9"}, "K93"},
|
end_key={i, "Bucket1", {"Idx1", "Fld9"}, "K93"},
|
||||||
|
@ -971,6 +989,18 @@ random_select_test() ->
|
||||||
Level1 = array:get(1, LastManifest#manifest.levels),
|
Level1 = array:get(1, LastManifest#manifest.levels),
|
||||||
?assertMatch(true, lists:member(L1File, Level1)).
|
?assertMatch(true, lists:member(L1File, Level1)).
|
||||||
|
|
||||||
|
manifest_gc_test() ->
|
||||||
|
RP = "../test_gc",
|
||||||
|
ok = filelib:ensure_dir(RP),
|
||||||
|
ManifestT = initial_setup(multi_change),
|
||||||
|
ManifestL = tuple_to_list(ManifestT),
|
||||||
|
lists:foreach(fun(M) -> save_manifest(M, RP) end, ManifestL),
|
||||||
|
{ok, FNs} = file:list_dir(filepath(RP, manifest)),
|
||||||
|
io:format("FNs ~w~n", [FNs]),
|
||||||
|
?assertMatch(true, length(ManifestL) > ?MANIFESTS_TO_RETAIN),
|
||||||
|
?assertMatch(?MANIFESTS_TO_RETAIN, length(FNs)).
|
||||||
|
|
||||||
|
|
||||||
keylookup_manifest_test() ->
|
keylookup_manifest_test() ->
|
||||||
{Man0, Man1, Man2, Man3, _Man4, _Man5, Man6} = initial_setup(),
|
{Man0, Man1, Man2, Man3, _Man4, _Man5, Man6} = initial_setup(),
|
||||||
LK1_1 = {o, "Bucket1", "K711", null},
|
LK1_1 = {o, "Bucket1", "K711", null},
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue