Fix Epoch handling in machi_flu_psup_test.erl

This commit is contained in:
Scott Lystig Fritchie 2015-07-01 17:46:35 +09:00
parent 576d3d76a2
commit 38c1a2ab5d

View file

@ -84,20 +84,21 @@ partial_stop_restart2() ->
WedgeStatus = fun({_,#p_srvr{address=Addr, port=TcpPort}}) -> WedgeStatus = fun({_,#p_srvr{address=Addr, port=TcpPort}}) ->
machi_flu1_client:wedge_status(Addr, TcpPort) machi_flu1_client:wedge_status(Addr, TcpPort)
end, end,
Append = fun({_,#p_srvr{address=Addr, port=TcpPort}}) -> Append = fun({_,#p_srvr{address=Addr, port=TcpPort}}, EpochID) ->
machi_flu1_client:append_chunk(Addr, TcpPort, machi_flu1_client:append_chunk(Addr, TcpPort,
?DUMMY_PV1_EPOCH, EpochID,
<<"prefix">>, <<"data">>) <<"prefix">>, <<"data">>)
end, end,
try try
[Start(P) || P <- Ps], [Start(P) || P <- Ps],
[{ok, {true, _}} = WedgeStatus(P) || P <- Ps], % all are wedged [{ok, {true, _}} = WedgeStatus(P) || P <- Ps], % all are wedged
[{error,wedged} = Append(P) || P <- Ps], % all are wedged [{error,wedged} = Append(P, ?DUMMY_PV1_EPOCH) || P <- Ps], % all are wedged
[machi_chain_manager1:set_chain_members(ChMgr, Dict) || [machi_chain_manager1:set_chain_members(ChMgr, Dict) ||
ChMgr <- ChMgrs ], ChMgr <- ChMgrs ],
[{ok, {false, _}} = WedgeStatus(P) || P <- Ps], % *not* wedged {ok, {false, EpochID1}} = WedgeStatus(hd(Ps)),
[{ok,_} = Append(P) || P <- Ps], % *not* wedged [{ok, {false, EpochID1}} = WedgeStatus(P) || P <- Ps], % *not* wedged
[{ok,_} = Append(P, EpochID1) || P <- Ps], % *not* wedged
{_,_,_} = machi_chain_manager1:test_react_to_env(hd(ChMgrs)), {_,_,_} = machi_chain_manager1:test_react_to_env(hd(ChMgrs)),
[begin [begin
@ -123,7 +124,8 @@ partial_stop_restart2() ->
Proj_mCSum = Proj_m#projection_v1.epoch_csum, Proj_mCSum = Proj_m#projection_v1.epoch_csum,
[{ok, {false, {Epoch_m, Proj_mCSum}}} = WedgeStatus(P) || % *not* wedged [{ok, {false, {Epoch_m, Proj_mCSum}}} = WedgeStatus(P) || % *not* wedged
P <- Ps], P <- Ps],
[{ok,_} = Append(P) || P <- Ps], % *not* wedged {ok, {false, EpochID2}} = WedgeStatus(hd(Ps)),
[{ok,_} = Append(P, EpochID2) || P <- Ps], % *not* wedged
%% Stop all but 'a'. %% Stop all but 'a'.
[ok = machi_flu_psup:stop_flu_package(Name) || {Name,_} <- tl(Ps)], [ok = machi_flu_psup:stop_flu_package(Name) || {Name,_} <- tl(Ps)],
@ -138,7 +140,7 @@ partial_stop_restart2() ->
true = (machi_projection:update_dbg2(Proj_m, []) == true = (machi_projection:update_dbg2(Proj_m, []) ==
machi_projection:update_dbg2(Proj_m, [])), machi_projection:update_dbg2(Proj_m, [])),
%% Confirm that 'a' is wedged %% Confirm that 'a' is wedged
{error, wedged} = Append(hd(Ps)), {error, wedged} = Append(hd(Ps), EpochID2),
{_, #p_srvr{address=Addr_a, port=TcpPort_a}} = hd(Ps), {_, #p_srvr{address=Addr_a, port=TcpPort_a}} = hd(Ps),
{error, wedged} = machi_flu1_client:read_chunk( {error, wedged} = machi_flu1_client:read_chunk(
Addr_a, TcpPort_a, ?DUMMY_PV1_EPOCH, Addr_a, TcpPort_a, ?DUMMY_PV1_EPOCH,
@ -152,8 +154,10 @@ partial_stop_restart2() ->
{now_using,_,Epoch_n} = machi_chain_manager1:test_react_to_env( {now_using,_,Epoch_n} = machi_chain_manager1:test_react_to_env(
hd(ChMgrs)), hd(ChMgrs)),
true = (Epoch_n > Epoch_m), true = (Epoch_n > Epoch_m),
{ok, {false, EpochID3}} = WedgeStatus(hd(Ps)),
%% Confirm that 'a' is *not* wedged %% Confirm that 'a' is *not* wedged
{ok, _} = Append(hd(Ps)), {ok, _} = Append(hd(Ps), EpochID3),
ok ok
after after