@@ -124,7 +124,8 @@ all_tests() ->
124124 update_retention_policy ,
125125 queue_info ,
126126 tracking_status ,
127- restart_stream
127+ restart_stream ,
128+ dead_letter_target
128129 ].
129130
130131% % -------------------------------------------------------------------
@@ -2329,6 +2330,45 @@ purge(Config) ->
23292330 amqp_channel :call (Ch , # 'queue.purge' {queue = Q })),
23302331 rabbit_ct_broker_helpers :rpc (Config , 0 , ? MODULE , delete_testcase_queue , [Q ]).
23312332
2333+ dead_letter_target (Config ) ->
2334+ [Server | _ ] = rabbit_ct_broker_helpers :get_node_configs (Config , nodename ),
2335+ Ch = rabbit_ct_client_helpers :open_channel (Config , Server ),
2336+ Q = ? config (queue_name , Config ),
2337+ ? assertEqual ({'queue.declare_ok' , Q , 0 , 0 },
2338+ declare (Ch , Q , [{<<" x-queue-type" >>, longstr , <<" stream" >>}])),
2339+
2340+ SourceQ = <<Q /binary , " _source" >>,
2341+ ? assertEqual ({'queue.declare_ok' , SourceQ , 0 , 0 },
2342+ declare (Ch , SourceQ , [{<<" x-queue-type" >>, longstr , <<" classic" >>},
2343+ {<<" x-dead-letter-exchange" >>, longstr , <<>>},
2344+ {<<" x-dead-letter-routing-key" >>, longstr , Q }
2345+ ])),
2346+
2347+ publish_confirm (Ch , SourceQ , [<<" msg" >>]),
2348+ Ch1 = rabbit_ct_client_helpers :open_channel (Config , Server ),
2349+ qos (Ch1 , 1 , false ),
2350+ CTag = <<" ctag" >>,
2351+ amqp_channel :subscribe (Ch1 ,
2352+ # 'basic.consume' {queue = SourceQ ,
2353+ no_ack = false ,
2354+ consumer_tag = CTag },
2355+ self ()),
2356+ receive
2357+ # 'basic.consume_ok' {consumer_tag = CTag } ->
2358+ ok
2359+ after 5000 ->
2360+ exit (basic_consume_ok_timeout )
2361+ end ,
2362+ receive
2363+ {# 'basic.deliver' {delivery_tag = DeliveryTag }, _ } ->
2364+ ok = amqp_channel :cast (Ch1 , # 'basic.nack' {delivery_tag = DeliveryTag ,
2365+ requeue = false ,
2366+ multiple = false }),
2367+ quorum_queue_utils :wait_for_messages (Config , [[Q , <<" 1" >>, <<" 1" >>, <<" 0" >>]])
2368+ after 5000 ->
2369+ exit (timeout )
2370+ end ,
2371+ rabbit_ct_broker_helpers :rpc (Config , 0 , ? MODULE , delete_testcase_queue , [Q ]).
23322372% %----------------------------------------------------------------------------
23332373
23342374delete_queues (Qs ) when is_list (Qs ) ->
0 commit comments