From 52ca0e4b6c4ee05ea7718d80cd909fcbe67c8c06 Mon Sep 17 00:00:00 2001 From: martinsumner Date: Sun, 2 Jul 2017 19:33:18 +0100 Subject: [PATCH] Test expansion Detect a recent difference --- src/leveled_codec.erl | 6 +++--- test/end_to_end/testutil.erl | 8 ++++++-- test/end_to_end/tictac_SUITE.erl | 26 ++++++++++++++++++++++++-- 3 files changed, 33 insertions(+), 7 deletions(-) diff --git a/src/leveled_codec.erl b/src/leveled_codec.erl index 485a497..2d413e4 100644 --- a/src/leveled_codec.erl +++ b/src/leveled_codec.erl @@ -446,9 +446,9 @@ aae_indexspecs(AAE, Bucket, Key, SQN, H, LastMods) -> leveled_tictac:get_segment(Key, TreeSize), IdxFldStr = ?NRT_IDX ++ LMD1 ++ "_bin", IdxTrmStr = - string:right(integer_to_list(SegID), 24, $0) ++ + string:right(integer_to_list(SegID), 8, $0) ++ "." ++ - string:right(integer_to_list(H), 24, $0), + string:right(integer_to_list(H), 8, $0), {IdxK, IdxV} = gen_indexspec(Bucket0, Key, add, @@ -826,7 +826,7 @@ genaaeidx_test() -> [{{?IDX_TAG, <<"Bucket0">>, {Fld, Term}, <<"Key1">>}, {SQN, {active, TS}, no_lookup, null}}] = AAESpecsB1, ?assertMatch(true, is_integer(TS)), - ?assertMatch(49, length(binary_to_list(Term))), + ?assertMatch(17, length(binary_to_list(Term))), ?assertMatch("$aae.", lists:sublist(binary_to_list(Fld), 5)). -endif. \ No newline at end of file diff --git a/test/end_to_end/testutil.erl b/test/end_to_end/testutil.erl index cd143cf..305a371 100644 --- a/test/end_to_end/testutil.erl +++ b/test/end_to_end/testutil.erl @@ -282,8 +282,12 @@ generate_testobject() -> generate_testobject(B1, K1, V1, Spec1, MD). generate_testobject(B, K, V, Spec, MD) -> - Content = #r_content{metadata=dict:from_list(MD), value=V}, - {#r_object{bucket=B, key=K, contents=[Content], vclock=[{'a',1}]}, + MD0 = [{?MD_LASTMOD, os:timestamp()}|MD], + Content = #r_content{metadata=dict:from_list(MD0), value=V}, + {#r_object{bucket=B, + key=K, + contents=[Content], + vclock=generate_vclock()}, Spec}. diff --git a/test/end_to_end/tictac_SUITE.erl b/test/end_to_end/tictac_SUITE.erl index fc9f36b..c16858d 100644 --- a/test/end_to_end/tictac_SUITE.erl +++ b/test/end_to_end/tictac_SUITE.erl @@ -543,7 +543,7 @@ recent_aae_allaae(_Config) -> {ok, Book2C} = leveled_bookie:book_start(StartOptsC), {ok, Book2D} = leveled_bookie:book_start(StartOptsD), - {TicTacTreeJoined, TicTacTreeFull, EmptyTree, _LMDIndexes} = + {TicTacTreeJoined, TicTacTreeFull, EmptyTree, LMDIndexes} = load_and_check_recentaae(Book2A, Book2B, Book2C, Book2D, SW_StartLoad, TreeSize, UnitMins, LMDIndexes), @@ -555,6 +555,28 @@ recent_aae_allaae(_Config) -> true = DL1_0 == [], true = length(DL1_1) > 100, + V2 = "Value2", + {TestObject2, TestSpec2} = + testutil:generate_testobject(B1, K1, V2, S1, MD), + + New_startTS = os:timestamp(), + + ok = testutil:book_riakput(Book2B, TestObject2, TestSpec2), + testutil:check_forobject(Book2B, TestObject2), + testutil:check_forobject(Book2A, TestObject), + + New_endTS = os:timestamp(), + NewLMDIndexes = determine_lmd_indexes(New_startTS, New_endTS, UnitMins), + {TicTacTreeJoined2, TicTacTreeFull2, _EmptyTree, NewLMDIndexes} = + load_and_check_recentaae(Book2A, Book2B, Book2C, Book2D, + New_startTS, TreeSize, UnitMins, + NewLMDIndexes), + DL2_0 = leveled_tictac:find_dirtyleaves(TicTacTreeFull2, + TicTacTreeJoined2), + + % DL2_1 = leveled_tictac:find_dirtyleaves(TicTacTreeFull, EmptyTree), + true = length(DL2_0) == 1, + ok = leveled_bookie:book_close(Book2A), ok = leveled_bookie:book_close(Book2B), ok = leveled_bookie:book_close(Book2C), @@ -619,7 +641,7 @@ load_and_check_recentaae(Book1A, Book1B, Book1C, Book1D, fun(_B, _K) -> accumulate end}, {async, Folder} = leveled_bookie:book_returnfolder(Bookie, Q), R = Folder(), - io:format("TicTac Tree for index ~w took " ++ + io:format("TicTac Tree for index ~s took " ++ "~w microseconds~n", [LMD, timer:now_diff(os:timestamp(), SW)]), leveled_tictac:merge_trees(R, Acc)