summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Bakken <lbakken@pivotal.io>2020-04-28 00:50:23 +0000
committerJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2020-05-12 15:24:57 +0200
commita53c45bee2ded205a54c6b76fa5eb36efe7cc3dd (patch)
tree5550738a68ed748ecb5fac3cede13cf0097bdf8a
parent086dad052c223b75c4e8d5db366648db46b473b9 (diff)
downloadrabbitmq-server-git-a53c45bee2ded205a54c6b76fa5eb36efe7cc3dd.tar.gz
Refactor to include retries
-rw-r--r--test/confirms_rejects_SUITE.erl45
-rw-r--r--test/dynamic_ha_SUITE.erl8
2 files changed, 27 insertions, 26 deletions
diff --git a/test/confirms_rejects_SUITE.erl b/test/confirms_rejects_SUITE.erl
index c529c44418..aaaeb4a939 100644
--- a/test/confirms_rejects_SUITE.erl
+++ b/test/confirms_rejects_SUITE.erl
@@ -135,17 +135,9 @@ dead_queue_rejects(Config) ->
error(timeout_waiting_for_initial_ack)
end,
- kill_the_queue(QueueName, Config),
-
- amqp_channel:cast(Ch, #'basic.publish'{routing_key = QueueName},
- #amqp_msg{payload = <<"HI">>}),
-
- receive
- {'basic.ack',_,_} -> error(expecting_nack_got_ack);
- {'basic.nack',_,_,_} -> ok
- after 10000 ->
- error(timeout_waiting_for_nack)
- end.
+ BasicPublish = #'basic.publish'{routing_key = QueueName},
+ AmqpMsg = #amqp_msg{payload = <<"HI">>},
+ kill_queue_expect_nack(Config, Ch, QueueName, BasicPublish, AmqpMsg, 5).
mixed_dead_alive_queues_reject(Config) ->
Conn = ?config(conn, Config),
@@ -184,17 +176,28 @@ mixed_dead_alive_queues_reject(Config) ->
error({timeout_waiting_for_initial_ack, process_info(self(), messages)})
end,
- kill_the_queue(QueueNameDead, Config),
+ BasicPublish = #'basic.publish'{exchange = ExchangeName, routing_key = <<"route">>},
+ AmqpMsg = #amqp_msg{payload = <<"HI">>},
+ kill_queue_expect_nack(Config, Ch, QueueNameDead, BasicPublish, AmqpMsg, 5).
- amqp_channel:cast(Ch, #'basic.publish'{exchange = ExchangeName,
- routing_key = <<"route">>},
- #amqp_msg{payload = <<"HI">>}),
-
- receive
- {'basic.nack',_,_,_} -> ok;
- {'basic.ack',_,_} -> error(expecting_nack_got_ack)
- after 10000 ->
- error({timeout_waiting_for_nack, process_info(self(), messages)})
+kill_queue_expect_nack(_Config, _Ch, _QueueName, _BasicPublish, _AmqpMsg, 0) ->
+ error(expecting_nack_got_ack);
+kill_queue_expect_nack(Config, Ch, QueueName, BasicPublish, AmqpMsg, Tries) ->
+ kill_the_queue(QueueName, Config),
+ amqp_channel:cast(Ch, BasicPublish, AmqpMsg),
+ R = receive
+ {'basic.nack',_,_,_} ->
+ ok;
+ {'basic.ack',_,_} ->
+ retry
+ after 10000 ->
+ error({timeout_waiting_for_nack, process_info(self(), messages)})
+ end,
+ case R of
+ ok ->
+ ok;
+ retry ->
+ kill_queue_expect_nack(Config, Ch, QueueName, BasicPublish, AmqpMsg, Tries - 1)
end.
confirms_rejects_conflict(Config) ->
diff --git a/test/dynamic_ha_SUITE.erl b/test/dynamic_ha_SUITE.erl
index 698646d9c3..c20e2aae0b 100644
--- a/test/dynamic_ha_SUITE.erl
+++ b/test/dynamic_ha_SUITE.erl
@@ -225,8 +225,7 @@ change_policy(Config) ->
ok.
change_cluster(Config) ->
- [A, B, C, D, E] = rabbit_ct_broker_helpers:get_node_configs(Config,
- nodename),
+ [A, B, C, D, E] = rabbit_ct_broker_helpers:get_node_configs(Config, nodename),
rabbit_ct_broker_helpers:cluster_nodes(Config, [A, B, C]),
ACh = rabbit_ct_client_helpers:open_channel(Config, A),
@@ -234,13 +233,12 @@ change_cluster(Config) ->
assert_slaves(A, ?QNAME, {A, ''}),
%% Give it policy exactly 4, it should mirror to all 3 nodes
- rabbit_ct_broker_helpers:set_ha_policy(Config, A, ?POLICY,
- {<<"exactly">>, 4}),
+ rabbit_ct_broker_helpers:set_ha_policy(Config, A, ?POLICY, {<<"exactly">>, 4}),
assert_slaves(A, ?QNAME, {A, [B, C]}, [{A, []}, {A, [B]}, {A, [C]}]),
%% Add D and E, D joins in
rabbit_ct_broker_helpers:cluster_nodes(Config, [A, D, E]),
- assert_slaves(A, ?QNAME, {A, [B, C, D]}, [{A, [B, C]}]),
+ assert_slaves(A, ?QNAME, {A, [B, C, D]}, , [{A, [B, C]}, {A, [B, C, E]}]),
%% Remove D, E joins in
rabbit_ct_broker_helpers:stop_node(Config, D),