|
14 | 14 |
|
15 | 15 | -compile(export_all). |
16 | 16 |
|
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, |
18 | 20 | with_amqp10_session/2, |
19 | 21 | amqp10_publish_expect/5, |
20 | | - amqp10_declare_queue/3]). |
| 22 | + amqp10_declare_queue/3, |
| 23 | + amqp10_publish/4, |
| 24 | + amqp10_expect_count/3 |
| 25 | + ]). |
21 | 26 |
|
22 | 27 | -define(PARAM, <<"test">>). |
23 | 28 |
|
@@ -55,7 +60,16 @@ tests() -> |
55 | 60 | simple_classic_on_publish, |
56 | 61 | simple_quorum_no_ack, |
57 | 62 | 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 |
59 | 73 | ]. |
60 | 74 |
|
61 | 75 | %% ------------------------------------------------------------------- |
@@ -240,6 +254,61 @@ simple_queue_type_ack_mode(Config, Type, AckMode) -> |
240 | 254 | amqp10_publish_expect(Sess, Src, Dest, <<"hello">>, 10) |
241 | 255 | end). |
242 | 256 |
|
| 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 | + |
243 | 312 | %%---------------------------------------------------------------------------- |
244 | 313 | maybe_skip_local_protocol(Config) -> |
245 | 314 | [Node] = rabbit_ct_broker_helpers:get_node_configs(Config, nodename), |
|
0 commit comments