diff options
-rw-r--r-- | deps/rabbit/test/rabbitmq_queues_cli_integration_SUITE.erl | 44 |
1 files changed, 25 insertions, 19 deletions
diff --git a/deps/rabbit/test/rabbitmq_queues_cli_integration_SUITE.erl b/deps/rabbit/test/rabbitmq_queues_cli_integration_SUITE.erl index f02e4a51af..ff50a9719c 100644 --- a/deps/rabbit/test/rabbitmq_queues_cli_integration_SUITE.erl +++ b/deps/rabbit/test/rabbitmq_queues_cli_integration_SUITE.erl @@ -60,27 +60,31 @@ end_per_group(tests, Config) -> rabbit_ct_broker_helpers:teardown_steps()). init_per_testcase(Testcase, Config0) -> + Q = atom_to_list(Testcase), + Config1 = rabbit_ct_helpers:set_config(Config0, [{queue_name, Q}]), rabbit_ct_helpers:ensure_rabbitmq_queues_cmd( - rabbit_ct_helpers:testcase_started(Config0, Testcase)). + rabbit_ct_helpers:testcase_started(Config1, Testcase)). end_per_testcase(Testcase, Config0) -> + rabbit_ct_broker_helpers:rpc(Config0, 0, ?MODULE, delete_queues, []), rabbit_ct_helpers:testcase_finished(Config0, Testcase). +delete_queues() -> + [{ok, _} = rabbit_amqqueue:delete(Q, false, false, <<"dummy">>) + || Q <- rabbit_amqqueue:list()]. + shrink(Config) -> NodeConfig = rabbit_ct_broker_helpers:get_node_config(Config, 2), Nodename2 = ?config(nodename, NodeConfig), Ch = rabbit_ct_client_helpers:open_channel(Config, Nodename2), %% declare a quorum queue - QName = "shrink1", + QName = ?config(queue_name, Config), #'queue.declare_ok'{} = declare_qq(Ch, QName), - {ok, Out1} = rabbitmq_queues(Config, 0, ["shrink", Nodename2]), - ?assertMatch(#{{"/", "shrink1"} := {2, ok}}, parse_result(Out1)), + await_queues(Config, ["shrink", Nodename2], #{{"/", QName} => {2, ok}}), Nodename1 = rabbit_ct_broker_helpers:get_node_config(Config, 1, nodename), - {ok, Out2} = rabbitmq_queues(Config, 0, ["shrink", Nodename1]), - ?assertMatch(#{{"/", "shrink1"} := {1, ok}}, parse_result(Out2)), + await_queues(Config, ["shrink", Nodename1], #{{"/", QName} => {1, ok}}), Nodename0 = rabbit_ct_broker_helpers:get_node_config(Config, 0, nodename), - {ok, Out3} = rabbitmq_queues(Config, 0, ["shrink", Nodename0]), - ?assertMatch(#{{"/", "shrink1"} := {1, error}}, parse_result(Out3)), + await_queues(Config, ["shrink", Nodename0], #{{"/", QName} => {1, error}}), ok. grow(Config) -> @@ -88,18 +92,14 @@ grow(Config) -> Nodename2 = ?config(nodename, NodeConfig), Ch = rabbit_ct_client_helpers:open_channel(Config, Nodename2), %% declare a quorum queue - QName = "grow1", + QName = ?config(queue_name, Config), Args = [{<<"x-quorum-initial-group-size">>, long, 1}], #'queue.declare_ok'{} = declare_qq(Ch, QName, Args), Nodename0 = rabbit_ct_broker_helpers:get_node_config(Config, 0, nodename), - {ok, Out1} = rabbitmq_queues(Config, 0, ["grow", Nodename0, "all"]), - ?assertMatch(#{{"/", "grow1"} := {2, ok}}, parse_result(Out1)), + await_queues(Config, ["grow", Nodename0, "all"], #{{"/", QName} => {2, ok}}), Nodename1 = rabbit_ct_broker_helpers:get_node_config(Config, 1, nodename), - {ok, Out2} = rabbitmq_queues(Config, 0, ["grow", Nodename1, "all"]), - ?assertMatch(#{{"/", "grow1"} := {3, ok}}, parse_result(Out2)), - - {ok, Out3} = rabbitmq_queues(Config, 0, ["grow", Nodename0, "all"]), - ?assertNotMatch(#{{"/", "grow1"} := _}, parse_result(Out3)), + await_queues(Config, ["grow", Nodename1, "all"], #{{"/", QName} => {3, ok}}), + await_queues(Config, ["grow", Nodename0, "all"], #{}), ok. grow_invalid_node_filtered(Config) -> @@ -107,14 +107,20 @@ grow_invalid_node_filtered(Config) -> Nodename2 = ?config(nodename, NodeConfig), Ch = rabbit_ct_client_helpers:open_channel(Config, Nodename2), %% declare a quorum queue - QName = "grow-err", + QName = ?config(queue_name, Config), Args = [{<<"x-quorum-initial-group-size">>, long, 1}], #'queue.declare_ok'{} = declare_qq(Ch, QName, Args), DummyNode = not_really_a_node@nothing, - {ok, Out1} = rabbitmq_queues(Config, 0, ["grow", DummyNode, "all"]), - ?assertNotMatch(#{{"/", "grow-err"} := _}, parse_result(Out1)), + await_queues(Config, ["grow", DummyNode, "all"], #{}), ok. +await_queues(Config, Args, Expected) -> + rabbit_ct_helpers:await_condition( + fun() -> + {ok, Out} = rabbitmq_queues(Config, 0, Args), + Expected == parse_result(Out) + end). + parse_result(S) -> Lines = string:split(S, "\n", all), maps:from_list( |