Skip to content

Commit 8a03b28

Browse files
committed
Add a unit test for rabbit_amqqueue:mark_local_durable_queues_stopped/1
1 parent 091d74c commit 8a03b28

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

deps/rabbit/test/rabbit_db_queue_SUITE.erl

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ all_tests() ->
5151
get_durable,
5252
get_many_durable,
5353
update_durable,
54+
mark_local_durable_queues_stopped,
5455
foreach_durable,
5556
internal_delete
5657
].
@@ -463,6 +464,24 @@ update_durable1(_Config) ->
463464
?assertMatch(my_policy, amqqueue:get_policy(Q0)),
464465
passed.
465466

467+
mark_local_durable_queues_stopped(Config) ->
468+
passed = rabbit_ct_broker_helpers:rpc(Config, 0,
469+
?MODULE, mark_local_durable_queues_stopped1, [Config]).
470+
471+
mark_local_durable_queues_stopped1(_Config) ->
472+
DurableQName = rabbit_misc:r(?VHOST, queue, <<"test-queue1">>),
473+
TransientQName = rabbit_misc:r(?VHOST, queue, <<"test-queue2">>),
474+
DurableQ = new_queue(DurableQName, rabbit_classic_queue),
475+
TransientQ = new_queue(TransientQName, rabbit_classic_queue),
476+
%% Set Q1's pid to a dead process
477+
RecoverableQ = amqqueue:set_pid(DurableQ, spawn(fun() -> ok end)),
478+
?assertEqual(ok, rabbit_db_queue:set(RecoverableQ)),
479+
?assertEqual(ok, rabbit_db_queue:set_dirty(TransientQ)),
480+
?assertEqual(ok, rabbit_amqqueue:mark_local_durable_queues_stopped(?VHOST)),
481+
{ok, StoppedQ} = rabbit_db_queue:get_durable(DurableQName),
482+
?assertEqual(stopped, amqqueue:get_state(StoppedQ)),
483+
passed.
484+
466485
foreach_durable(Config) ->
467486
passed = rabbit_ct_broker_helpers:rpc(Config, 0, ?MODULE, foreach_durable1, [Config]).
468487

0 commit comments

Comments
 (0)