summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/dynamic_ha_SUITE.erl28
1 files changed, 16 insertions, 12 deletions
diff --git a/test/dynamic_ha_SUITE.erl b/test/dynamic_ha_SUITE.erl
index 502e3a7e86..a7c7eec861 100644
--- a/test/dynamic_ha_SUITE.erl
+++ b/test/dynamic_ha_SUITE.erl
@@ -65,8 +65,8 @@ groups() ->
nodes_policy_should_pick_master_from_its_params
% FIXME: Re-enable those tests when the know issues are
% fixed.
- %failing_random_policies,
- %random_policy
+ % failing_random_policies,
+ % random_policy
]}
]}
].
@@ -124,17 +124,18 @@ change_policy(Config) ->
%% When we first declare a queue with no policy, it's not HA.
amqp_channel:call(ACh, #'queue.declare'{queue = ?QNAME}),
+ timer:sleep(100),
assert_slaves(A, ?QNAME, {A, ''}),
%% Give it policy "all", it becomes HA and gets all mirrors
rabbit_ct_broker_helpers:set_ha_policy(Config, A, ?POLICY, <<"all">>),
- assert_slaves(A, ?QNAME, {A, [B, C]}),
+ assert_slaves(A, ?QNAME, {A, [B, C]}, [{A, []}, {A, [B]}, {A, [C]}]),
%% Give it policy "nodes", it gets specific mirrors
rabbit_ct_broker_helpers:set_ha_policy(Config, A, ?POLICY,
{<<"nodes">>, [rabbit_misc:atom_to_binary(A),
rabbit_misc:atom_to_binary(B)]}),
- assert_slaves(A, ?QNAME, {A, [B]}),
+ assert_slaves(A, ?QNAME, {A, [B]}, [{A, [B, C]}]),
%% Now explicitly change the mirrors
rabbit_ct_broker_helpers:set_ha_policy(Config, A, ?POLICY,
@@ -150,7 +151,7 @@ change_policy(Config) ->
rabbit_ct_broker_helpers:set_ha_policy(Config, A, ?POLICY,
{<<"nodes">>, [rabbit_misc:atom_to_binary(B),
rabbit_misc:atom_to_binary(C)]}),
- assert_slaves(A, ?QNAME, {A, [B, C]}, [{A, [B]}, {A, [C]}]),
+ assert_slaves(A, ?QNAME, {B, [C]}, [{A, []}, {A, [B]}, {A, [C]}, {A, [B, C]}]),
ok.
@@ -166,15 +167,15 @@ change_cluster(Config) ->
%% Give it policy exactly 4, it should mirror to all 3 nodes
rabbit_ct_broker_helpers:set_ha_policy(Config, A, ?POLICY,
{<<"exactly">>, 4}),
- assert_slaves(A, ?QNAME, {A, [B, C]}),
+ 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]}),
+ assert_slaves(A, ?QNAME, {A, [B, C, D]}, [{A, [B, C]}]),
%% Remove D, E joins in
rabbit_ct_broker_helpers:stop_node(Config, D),
- assert_slaves(A, ?QNAME, {A, [B, C, E]}),
+ assert_slaves(A, ?QNAME, {A, [B, C, E]}, [{A, [B, C]}]),
ok.
@@ -343,15 +344,18 @@ assert_slaves0(RPCNode, QName, {ExpMNode, ExpSNodes}, PermittedIntermediate) ->
%% just wait - of course this means if something does not
%% change when expected then we time out the test which is
%% a bit tedious
- case [found || {PermMNode, PermSNodes} <- PermittedIntermediate,
+ case [{PermMNode, PermSNodes} || {PermMNode, PermSNodes} <- PermittedIntermediate,
PermMNode =:= ActMNode,
equal_list(PermSNodes, ActSNodes)] of
[] -> ct:fail("Expected ~p / ~p, got ~p / ~p~nat ~p~n",
[ExpMNode, ExpSNodes, ActMNode, ActSNodes,
get_stacktrace()]);
- _ -> timer:sleep(100),
- assert_slaves0(RPCNode, QName, {ExpMNode, ExpSNodes},
- PermittedIntermediate)
+ State ->
+ ct:pal("Waiting to leave state ~p~n Waiting for ~p~n",
+ [State, {ExpMNode, ExpSNodes}]),
+ timer:sleep(100),
+ assert_slaves0(RPCNode, QName, {ExpMNode, ExpSNodes},
+ PermittedIntermediate)
end;
true ->
put(previous_exp_m_node, ExpMNode),