@@ -51,6 +51,7 @@ all_tests() ->
51
51
get_durable ,
52
52
get_many_durable ,
53
53
update_durable ,
54
+ mark_local_durable_queues_stopped ,
54
55
foreach_durable ,
55
56
internal_delete
56
57
].
@@ -463,6 +464,24 @@ update_durable1(_Config) ->
463
464
? assertMatch (my_policy , amqqueue :get_policy (Q0 )),
464
465
passed .
465
466
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
+
466
485
foreach_durable (Config ) ->
467
486
passed = rabbit_ct_broker_helpers :rpc (Config , 0 , ? MODULE , foreach_durable1 , [Config ]).
468
487
0 commit comments