summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Ansari <david.ansari@gmx.de>2022-09-09 15:39:14 +0000
committerDavid Ansari <david.ansari@gmx.de>2022-09-09 18:42:43 +0200
commita04f96fca6f123e05a6ae0ae9006cdfcce34c19d (patch)
tree5131558d3a79b6fad0599752b3f0e178e055d0ed
parent6e39736f99b44e5dcc10abc2be9089c77b94576a (diff)
downloadrabbitmq-server-git-a04f96fca6f123e05a6ae0ae9006cdfcce34c19d.tar.gz
Fix flaky rabbit_fifio_int:credit tests
Prior to this commit test credit() was flaky. It used to fail with: ``` rabbit_fifo_int_SUITE:credit failed on line 437 Reason: {badmatch,{[{{resource,"/",queue,<<"credit">>},credit,1,fals...} ``` In that case returned events were: ``` Events=[{ra_event,{credit,ct_rabbit@nuc},{applied,[{3,ok}]}}, {ra_event,{credit,ct_rabbit@nuc}, {machine,{delivery,<<"tag">>,[{1,{0,m2}}]}}}] ``` instead of: ``` Events=[{ra_event, {credit,ct_rabbit@nuc}, {machine,{delivery,<<"tag">>,[{1,{0,m2}}]}}}, {ra_event, {credit,ct_rabbit@nuc}, {applied, [{3,ok}, {4, {multi, [{send_credit_reply,0}, {send_drained,{<<"tag">>,3}}]}}]}}] ``` The fix is we wait for both ra 'applied' events. (cherry picked from commit 831a8e521139f7d09ed4af0f50ddc0a984e0dfb7) (cherry picked from commit 86b1cdc5902048eb238975b4c641f229c7f2c9b2)
-rw-r--r--deps/rabbit/test/rabbit_fifo_int_SUITE.erl8
1 files changed, 4 insertions, 4 deletions
diff --git a/deps/rabbit/test/rabbit_fifo_int_SUITE.erl b/deps/rabbit/test/rabbit_fifo_int_SUITE.erl
index a8c4f8871f..3a667eab73 100644
--- a/deps/rabbit/test/rabbit_fifo_int_SUITE.erl
+++ b/deps/rabbit/test/rabbit_fifo_int_SUITE.erl
@@ -62,8 +62,7 @@ init_per_testcase(TestCase, Config) ->
meck:expect(rabbit_quorum_queue, handle_tick, fun (_, _, _) -> ok end),
meck:expect(rabbit_quorum_queue, file_handle_leader_reservation, fun (_) -> ok end),
meck:expect(rabbit_quorum_queue, file_handle_other_reservation, fun () -> ok end),
- meck:expect(rabbit_quorum_queue, cancel_consumer_handler,
- fun (_, _) -> ok end),
+ meck:expect(rabbit_quorum_queue, cancel_consumer_handler, fun (_, _) -> ok end),
ra_server_sup_sup:remove_all(?RA_SYSTEM),
ServerName2 = list_to_atom(atom_to_list(TestCase) ++ "2"),
ServerName3 = list_to_atom(atom_to_list(TestCase) ++ "3"),
@@ -434,7 +433,7 @@ credit(Config) ->
%% credit and drain
{F8, []} = rabbit_fifo_client:credit(<<"tag">>, 4, true, F7),
{[{_, _, _, _, m2}], [{send_credit_reply, _}, {send_drained, _}], F9} =
- process_ra_events(receive_ra_events(1, 1), F8),
+ process_ra_events(receive_ra_events(2, 1), F8),
flush(),
%% enqueue another message - at this point the consumer credit should be
@@ -555,7 +554,8 @@ process_ra_event(State, Wait) ->
receive_ra_events(Applied, Deliveries) ->
receive_ra_events(Applied, Deliveries, []).
-receive_ra_events(Applied, Deliveries, Acc) when Applied =< 0, Deliveries =< 0->
+receive_ra_events(Applied, Deliveries, Acc)
+ when Applied =< 0 andalso Deliveries =< 0 ->
%% what if we get more events? Testcases should check what they're!
lists:reverse(Acc);
receive_ra_events(Applied, Deliveries, Acc) ->