Skip to content

Commit 333719c

Browse files
committed
amqp10_inter_cluster_SUITE: Wait for queue length to reach expectations
[Why] Relying on the return value of the queue deletion is fragile because the policy is cleared asynchronously. [How] We now wait for the queues to reach the expected queue length, then we delete them and ensure the length didn't change. (cherry picked from commit efdec84)
1 parent e507209 commit 333719c

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

deps/rabbitmq_shovel/test/amqp10_inter_cluster_SUITE.erl

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@
99

1010
-include_lib("common_test/include/ct.hrl").
1111
-include_lib("eunit/include/eunit.hrl").
12+
13+
-include_lib("rabbitmq_ct_helpers/include/rabbit_assert.hrl").
14+
1215
-compile([export_all, nowarn_export_all]).
1316

1417
-import(rabbit_ct_broker_helpers, [rpc/5]).
@@ -136,6 +139,14 @@ shovel(SrcNode, DestNode, ShovelNode, Config) ->
136139
ok = rpc(Config, ShovelNode, rabbit_runtime_parameters, clear,
137140
[<<"/">>, <<"shovel">>, ShovelName, none]),
138141
ExpectedQueueLen = 0,
142+
?awaitMatch(
143+
[ExpectedQueueLen],
144+
rpc(Config, ?OLD, ?MODULE, queues_length, []),
145+
30000),
146+
?awaitMatch(
147+
[ExpectedQueueLen],
148+
rpc(Config, ?NEW, ?MODULE, queues_length, []),
149+
30000),
139150
?assertEqual([ExpectedQueueLen], rpc(Config, ?OLD, ?MODULE, delete_queues, [])),
140151
?assertEqual([ExpectedQueueLen], rpc(Config, ?NEW, ?MODULE, delete_queues, [])).
141152

@@ -170,6 +181,12 @@ flush(Prefix) ->
170181
ok
171182
end.
172183

184+
queues_length() ->
185+
[begin
186+
[{messages, N}] = rabbit_amqqueue:info(Q, [messages]),
187+
N
188+
end || Q <- rabbit_amqqueue:list()].
189+
173190
delete_queues() ->
174191
[begin
175192
{ok, N} = rabbit_amqqueue:delete(Q, false, false, <<"tests">>),

0 commit comments

Comments
 (0)