Skip to content

Commit 4517b84

Browse files
committed
Shovel tests: tests for autodelete common to all protocols
1 parent a8cdfa0 commit 4517b84

File tree

1 file changed

+72
-3
lines changed

1 file changed

+72
-3
lines changed

deps/rabbitmq_shovel/test/shovel_dynamic_SUITE.erl

Lines changed: 72 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,15 @@
1414

1515
-compile(export_all).
1616

17-
-import(shovel_test_utils, [set_param/3,
17+
-import(shovel_test_utils, [await_autodelete/2,
18+
set_param/3,
19+
set_param_nowait/3,
1820
with_amqp10_session/2,
1921
amqp10_publish_expect/5,
20-
amqp10_declare_queue/3]).
22+
amqp10_declare_queue/3,
23+
amqp10_publish/4,
24+
amqp10_expect_count/3
25+
]).
2126

2227
-define(PARAM, <<"test">>).
2328

@@ -55,7 +60,16 @@ tests() ->
5560
simple_classic_on_publish,
5661
simple_quorum_no_ack,
5762
simple_quorum_on_confirm,
58-
simple_quorum_on_publish
63+
simple_quorum_on_publish,
64+
autodelete_classic_on_confirm,
65+
autodelete_quorum_on_confirm,
66+
autodelete_classic_on_publish,
67+
autodelete_quorum_on_publish,
68+
autodelete_no_ack,
69+
autodelete_classic_on_confirm_no_transfer,
70+
autodelete_quorum_on_confirm_no_transfer,
71+
autodelete_classic_on_publish_no_transfer,
72+
autodelete_quorum_on_publish_no_transfer
5973
].
6074

6175
%% -------------------------------------------------------------------
@@ -240,6 +254,61 @@ simple_queue_type_ack_mode(Config, Type, AckMode) ->
240254
amqp10_publish_expect(Sess, Src, Dest, <<"hello">>, 10)
241255
end).
242256

257+
autodelete_classic_on_confirm_no_transfer(Config) ->
258+
autodelete(Config, <<"classic">>, <<"on-confirm">>, 0, 100, 0).
259+
260+
autodelete_quorum_on_confirm_no_transfer(Config) ->
261+
autodelete(Config, <<"quorum">>, <<"on-confirm">>, 0, 100, 0).
262+
263+
autodelete_classic_on_publish_no_transfer(Config) ->
264+
autodelete(Config, <<"classic">>, <<"on-publish">>, 0, 100, 0).
265+
266+
autodelete_quorum_on_publish_no_transfer(Config) ->
267+
autodelete(Config, <<"quorum">>, <<"on-publish">>, 0, 100, 0).
268+
269+
autodelete_classic_on_confirm(Config) ->
270+
autodelete(Config, <<"classic">>, <<"on-confirm">>, 50, 50, 50).
271+
272+
autodelete_quorum_on_confirm(Config) ->
273+
autodelete(Config, <<"quorum">>, <<"on-confirm">>, 50, 50, 50).
274+
275+
autodelete_classic_on_publish(Config) ->
276+
autodelete(Config, <<"classic">>, <<"on-publish">>, 50, 50, 50).
277+
278+
autodelete_quorum_on_publish(Config) ->
279+
autodelete(Config, <<"quorum">>, <<"on-publish">>, 50, 50, 50).
280+
281+
autodelete_no_ack(Config) ->
282+
ExtraArgs = [{<<"ack-mode">>, <<"no-ack">>},
283+
{<<"src-delete-after">>, 100}],
284+
ShovelArgs = ?config(shovel_args, Config) ++ ExtraArgs,
285+
Uri = shovel_test_utils:make_uri(Config, 0),
286+
?assertMatch({error_string, _},
287+
rabbit_ct_broker_helpers:rpc(
288+
Config, 0, rabbit_runtime_parameters, set,
289+
[<<"/">>, <<"shovel">>, ?PARAM,
290+
[{<<"src-uri">>, Uri},
291+
{<<"dest-uri">>, [Uri]}] ++ ShovelArgs,
292+
none])).
293+
294+
autodelete(Config, Type, AckMode, After, ExpSrc, ExpDest) ->
295+
Src = ?config(srcq, Config),
296+
Dest = ?config(destq, Config),
297+
with_amqp10_session(
298+
Config,
299+
fun (Sess) ->
300+
amqp10_declare_queue(Sess, Src, #{<<"x-queue-type">> => {utf8, Type}}),
301+
amqp10_declare_queue(Sess, Dest, #{<<"x-queue-type">> => {utf8, Type}}),
302+
amqp10_publish(Sess, Src, <<"hello">>, 100),
303+
ExtraArgs = [{<<"ack-mode">>, AckMode},
304+
{<<"src-delete-after">>, After}],
305+
ShovelArgs = ?config(shovel_args, Config) ++ ExtraArgs,
306+
set_param_nowait(Config, ?PARAM, ShovelArgs),
307+
await_autodelete(Config, ?PARAM),
308+
amqp10_expect_count(Sess, Src, ExpSrc),
309+
amqp10_expect_count(Sess, Dest, ExpDest)
310+
end).
311+
243312
%%----------------------------------------------------------------------------
244313
maybe_skip_local_protocol(Config) ->
245314
[Node] = rabbit_ct_broker_helpers:get_node_configs(Config, nodename),

0 commit comments

Comments
 (0)