test(emqx): Fix flaky emqx_takeover_SUITE:t_takeover testcase
This testcase uses QoS1, so it must account for possible duplication of the messages.
This commit is contained in:
parent
e238602533
commit
e1ec560639
|
@ -145,15 +145,16 @@ assert_messages_missed(Ls1, Ls2) ->
|
||||||
|
|
||||||
assert_messages_order([], []) ->
|
assert_messages_order([], []) ->
|
||||||
ok;
|
ok;
|
||||||
assert_messages_order([Msg | Ls1], [#{payload := No} | Ls2]) ->
|
assert_messages_order([Msg | Expected], Received) ->
|
||||||
case emqx_message:payload(Msg) == No of
|
%% Account for duplicate messages:
|
||||||
false ->
|
case lists:splitwith(fun(#{payload := P}) -> emqx_message:payload(Msg) == P end, Received) of
|
||||||
|
{[], [#{payload := Mismatch} | _]} ->
|
||||||
ct:fail("Message order is not correct, expected: ~p, received: ~p", [
|
ct:fail("Message order is not correct, expected: ~p, received: ~p", [
|
||||||
emqx_message:payload(Msg), No
|
emqx_message:payload(Msg), Mismatch
|
||||||
]),
|
]),
|
||||||
error;
|
error;
|
||||||
true ->
|
{_Matching, Rest} ->
|
||||||
assert_messages_order(Ls1, Ls2)
|
assert_messages_order(Expected, Rest)
|
||||||
end.
|
end.
|
||||||
|
|
||||||
messages(Offset, Cnt) ->
|
messages(Offset, Cnt) ->
|
||||||
|
|
Loading…
Reference in New Issue