Remove test code which depended on the `quorum_queue` feature flags
These checks are now irrelevant as the feature flag is required.
This commit is contained in:
parent
4dd07e2905
commit
6e9ee4d0da
|
@ -58,15 +58,10 @@ init_per_group(classic_queue, Config) ->
|
||||||
[{queue_args, [{<<"x-queue-type">>, longstr, <<"classic">>}]},
|
[{queue_args, [{<<"x-queue-type">>, longstr, <<"classic">>}]},
|
||||||
{queue_durable, true}]);
|
{queue_durable, true}]);
|
||||||
init_per_group(quorum_queue, Config) ->
|
init_per_group(quorum_queue, Config) ->
|
||||||
case rabbit_ct_broker_helpers:enable_feature_flag(Config, quorum_queue) of
|
rabbit_ct_helpers:set_config(
|
||||||
ok ->
|
Config,
|
||||||
rabbit_ct_helpers:set_config(
|
[{queue_args, [{<<"x-queue-type">>, longstr, <<"quorum">>}]},
|
||||||
Config,
|
{queue_durable, true}]);
|
||||||
[{queue_args, [{<<"x-queue-type">>, longstr, <<"quorum">>}]},
|
|
||||||
{queue_durable, true}]);
|
|
||||||
Skip ->
|
|
||||||
Skip
|
|
||||||
end;
|
|
||||||
init_per_group(mirrored_queue, Config) ->
|
init_per_group(mirrored_queue, Config) ->
|
||||||
rabbit_ct_broker_helpers:set_ha_policy(Config, 0, <<"^max_length.*queue">>,
|
rabbit_ct_broker_helpers:set_ha_policy(Config, 0, <<"^max_length.*queue">>,
|
||||||
<<"all">>, [{<<"ha-sync-mode">>, <<"automatic">>}]),
|
<<"all">>, [{<<"ha-sync-mode">>, <<"automatic">>}]),
|
||||||
|
|
|
@ -113,15 +113,10 @@ init_per_group(mirrored_queue, Config) ->
|
||||||
{queue_durable, false}]),
|
{queue_durable, false}]),
|
||||||
rabbit_ct_helpers:run_steps(Config1, []);
|
rabbit_ct_helpers:run_steps(Config1, []);
|
||||||
init_per_group(quorum_queue, Config) ->
|
init_per_group(quorum_queue, Config) ->
|
||||||
case rabbit_ct_broker_helpers:enable_feature_flag(Config, quorum_queue) of
|
rabbit_ct_helpers:set_config(
|
||||||
ok ->
|
Config,
|
||||||
rabbit_ct_helpers:set_config(
|
[{queue_args, [{<<"x-queue-type">>, longstr, <<"quorum">>}]},
|
||||||
Config,
|
{queue_durable, true}]);
|
||||||
[{queue_args, [{<<"x-queue-type">>, longstr, <<"quorum">>}]},
|
|
||||||
{queue_durable, true}]);
|
|
||||||
Skip ->
|
|
||||||
Skip
|
|
||||||
end;
|
|
||||||
init_per_group(at_most_once, Config) ->
|
init_per_group(at_most_once, Config) ->
|
||||||
case outer_group_name(Config) of
|
case outer_group_name(Config) of
|
||||||
quorum_queue ->
|
quorum_queue ->
|
||||||
|
|
|
@ -207,54 +207,44 @@ import_case11(Config) -> import_file_case(Config, "case11").
|
||||||
import_case12(Config) -> import_invalid_file_case(Config, "failing_case12").
|
import_case12(Config) -> import_invalid_file_case(Config, "failing_case12").
|
||||||
|
|
||||||
import_case13(Config) ->
|
import_case13(Config) ->
|
||||||
case rabbit_ct_broker_helpers:enable_feature_flag(Config, quorum_queue) of
|
import_file_case(Config, "case13"),
|
||||||
ok ->
|
VHost = <<"/">>,
|
||||||
import_file_case(Config, "case13"),
|
QueueName = <<"definitions.import.case13.qq.1">>,
|
||||||
VHost = <<"/">>,
|
QueueIsImported =
|
||||||
QueueName = <<"definitions.import.case13.qq.1">>,
|
fun () ->
|
||||||
QueueIsImported =
|
case queue_lookup(Config, VHost, QueueName) of
|
||||||
fun () ->
|
{ok, _} -> true;
|
||||||
case queue_lookup(Config, VHost, QueueName) of
|
_ -> false
|
||||||
{ok, _} -> true;
|
end
|
||||||
_ -> false
|
end,
|
||||||
end
|
rabbit_ct_helpers:await_condition(QueueIsImported, 20000),
|
||||||
end,
|
{ok, Q} = queue_lookup(Config, VHost, QueueName),
|
||||||
rabbit_ct_helpers:await_condition(QueueIsImported, 20000),
|
|
||||||
{ok, Q} = queue_lookup(Config, VHost, QueueName),
|
|
||||||
|
|
||||||
%% see rabbitmq/rabbitmq-server#2400, rabbitmq/rabbitmq-server#2426
|
%% see rabbitmq/rabbitmq-server#2400, rabbitmq/rabbitmq-server#2426
|
||||||
?assert(amqqueue:is_quorum(Q)),
|
?assert(amqqueue:is_quorum(Q)),
|
||||||
?assertEqual([{<<"x-max-length">>, long, 991},
|
?assertEqual([{<<"x-max-length">>, long, 991},
|
||||||
{<<"x-queue-type">>, longstr, <<"quorum">>}],
|
{<<"x-queue-type">>, longstr, <<"quorum">>}],
|
||||||
amqqueue:get_arguments(Q));
|
amqqueue:get_arguments(Q)).
|
||||||
Skip ->
|
|
||||||
Skip
|
|
||||||
end.
|
|
||||||
|
|
||||||
import_case13a(Config) ->
|
import_case13a(Config) ->
|
||||||
case rabbit_ct_broker_helpers:enable_feature_flag(Config, quorum_queue) of
|
import_file_case(Config, "case13"),
|
||||||
ok ->
|
VHost = <<"/">>,
|
||||||
import_file_case(Config, "case13"),
|
QueueName = <<"definitions.import.case13.qq.1">>,
|
||||||
VHost = <<"/">>,
|
QueueIsImported =
|
||||||
QueueName = <<"definitions.import.case13.qq.1">>,
|
fun () ->
|
||||||
QueueIsImported =
|
case queue_lookup(Config, VHost, QueueName) of
|
||||||
fun () ->
|
{ok, _} -> true;
|
||||||
case queue_lookup(Config, VHost, QueueName) of
|
_ -> false
|
||||||
{ok, _} -> true;
|
end
|
||||||
_ -> false
|
end,
|
||||||
end
|
rabbit_ct_helpers:await_condition(QueueIsImported, 20000),
|
||||||
end,
|
{ok, Q} = queue_lookup(Config, VHost, QueueName),
|
||||||
rabbit_ct_helpers:await_condition(QueueIsImported, 20000),
|
|
||||||
{ok, Q} = queue_lookup(Config, VHost, QueueName),
|
|
||||||
|
|
||||||
%% We expect that importing an existing queue (i.e. same vhost and name)
|
%% We expect that importing an existing queue (i.e. same vhost and name)
|
||||||
%% but with different arguments and different properties is a no-op.
|
%% but with different arguments and different properties is a no-op.
|
||||||
import_file_case(Config, "case13a"),
|
import_file_case(Config, "case13a"),
|
||||||
timer:sleep(1000),
|
timer:sleep(1000),
|
||||||
?assertMatch({ok, Q}, queue_lookup(Config, VHost, QueueName));
|
?assertMatch({ok, Q}, queue_lookup(Config, VHost, QueueName)).
|
||||||
Skip ->
|
|
||||||
Skip
|
|
||||||
end.
|
|
||||||
|
|
||||||
import_case14(Config) -> import_file_case(Config, "case14").
|
import_case14(Config) -> import_file_case(Config, "case14").
|
||||||
%% contains a user with tags as a list
|
%% contains a user with tags as a list
|
||||||
|
|
|
@ -73,17 +73,10 @@ init_per_testcase(Testcase, Config) ->
|
||||||
{queue_name, Q},
|
{queue_name, Q},
|
||||||
{queue_args, [{<<"x-queue-type">>, longstr, <<"quorum">>}]}
|
{queue_args, [{<<"x-queue-type">>, longstr, <<"quorum">>}]}
|
||||||
]),
|
]),
|
||||||
Config2 = rabbit_ct_helpers:run_steps(
|
rabbit_ct_helpers:run_steps(
|
||||||
Config1,
|
Config1,
|
||||||
rabbit_ct_broker_helpers:setup_steps() ++
|
rabbit_ct_broker_helpers:setup_steps() ++
|
||||||
rabbit_ct_client_helpers:setup_steps()),
|
rabbit_ct_client_helpers:setup_steps())
|
||||||
case rabbit_ct_broker_helpers:enable_feature_flag(Config2, quorum_queue) of
|
|
||||||
ok ->
|
|
||||||
Config2;
|
|
||||||
Skip ->
|
|
||||||
end_per_testcase(Testcase, Config2),
|
|
||||||
Skip
|
|
||||||
end
|
|
||||||
end.
|
end.
|
||||||
|
|
||||||
end_per_testcase(Testcase, Config) ->
|
end_per_testcase(Testcase, Config) ->
|
||||||
|
|
|
@ -16,8 +16,7 @@
|
||||||
|
|
||||||
all() ->
|
all() ->
|
||||||
[
|
[
|
||||||
{group, cluster_size_3},
|
{group, cluster_size_3}
|
||||||
{group, quorum_queues}
|
|
||||||
].
|
].
|
||||||
|
|
||||||
groups() ->
|
groups() ->
|
||||||
|
@ -25,9 +24,7 @@ groups() ->
|
||||||
{cluster_size_3, [], [
|
{cluster_size_3, [], [
|
||||||
maintenance_mode_status,
|
maintenance_mode_status,
|
||||||
listener_suspension_status,
|
listener_suspension_status,
|
||||||
client_connection_closure
|
client_connection_closure,
|
||||||
]},
|
|
||||||
{quorum_queues, [], [
|
|
||||||
quorum_queue_leadership_transfer
|
quorum_queue_leadership_transfer
|
||||||
]}
|
]}
|
||||||
].
|
].
|
||||||
|
@ -43,17 +40,6 @@ init_per_suite(Config) ->
|
||||||
end_per_suite(Config) ->
|
end_per_suite(Config) ->
|
||||||
rabbit_ct_helpers:run_teardown_steps(Config).
|
rabbit_ct_helpers:run_teardown_steps(Config).
|
||||||
|
|
||||||
init_per_group(quorum_queues, Config) ->
|
|
||||||
case rabbit_ct_helpers:is_mixed_versions() of
|
|
||||||
true ->
|
|
||||||
%% In a mixed 3.8/3.9 cluster, unless the 3.8 node is the
|
|
||||||
%% one in maintenance mode, a quorum won't be available
|
|
||||||
%% due to mixed ra major versions
|
|
||||||
{skip, "test not supported in mixed version mode"};
|
|
||||||
_ ->
|
|
||||||
rabbit_ct_helpers:set_config(Config,
|
|
||||||
[{rmq_nodes_count, 3}])
|
|
||||||
end;
|
|
||||||
init_per_group(_Group, Config) ->
|
init_per_group(_Group, Config) ->
|
||||||
rabbit_ct_helpers:set_config(Config,
|
rabbit_ct_helpers:set_config(Config,
|
||||||
[{rmq_nodes_count, 3}]).
|
[{rmq_nodes_count, 3}]).
|
||||||
|
@ -70,19 +56,10 @@ init_per_testcase(quorum_queue_leadership_transfer = Testcase, Config) ->
|
||||||
{rmq_nodename_suffix, Testcase},
|
{rmq_nodename_suffix, Testcase},
|
||||||
{tcp_ports_base, {skip_n_nodes, TestNumber * ClusterSize}}
|
{tcp_ports_base, {skip_n_nodes, TestNumber * ClusterSize}}
|
||||||
]),
|
]),
|
||||||
Config2 = rabbit_ct_helpers:run_steps(
|
rabbit_ct_helpers:run_steps(
|
||||||
Config1,
|
Config1,
|
||||||
rabbit_ct_broker_helpers:setup_steps() ++
|
rabbit_ct_broker_helpers:setup_steps() ++
|
||||||
rabbit_ct_client_helpers:setup_steps()),
|
rabbit_ct_client_helpers:setup_steps());
|
||||||
QuorumQueueFFEnabled = rabbit_ct_broker_helpers:enable_feature_flag(
|
|
||||||
Config2, quorum_queue),
|
|
||||||
case QuorumQueueFFEnabled of
|
|
||||||
ok ->
|
|
||||||
Config2;
|
|
||||||
Skip ->
|
|
||||||
end_per_testcase(Testcase, Config2),
|
|
||||||
Skip
|
|
||||||
end;
|
|
||||||
init_per_testcase(Testcase, Config) ->
|
init_per_testcase(Testcase, Config) ->
|
||||||
rabbit_ct_helpers:testcase_started(Config, Testcase),
|
rabbit_ct_helpers:testcase_started(Config, Testcase),
|
||||||
ClusterSize = ?config(rmq_nodes_count, Config),
|
ClusterSize = ?config(rmq_nodes_count, Config),
|
||||||
|
|
|
@ -67,15 +67,10 @@ init_per_group(classic_queue, Config) ->
|
||||||
[{queue_args, [{<<"x-queue-type">>, longstr, <<"classic">>}]},
|
[{queue_args, [{<<"x-queue-type">>, longstr, <<"classic">>}]},
|
||||||
{queue_durable, true}]);
|
{queue_durable, true}]);
|
||||||
init_per_group(quorum_queue, Config) ->
|
init_per_group(quorum_queue, Config) ->
|
||||||
case rabbit_ct_broker_helpers:enable_feature_flag(Config, quorum_queue) of
|
rabbit_ct_helpers:set_config(
|
||||||
ok ->
|
Config,
|
||||||
rabbit_ct_helpers:set_config(
|
[{queue_args, [{<<"x-queue-type">>, longstr, <<"quorum">>}]},
|
||||||
Config,
|
{queue_durable, true}]);
|
||||||
[{queue_args, [{<<"x-queue-type">>, longstr, <<"quorum">>}]},
|
|
||||||
{queue_durable, true}]);
|
|
||||||
Skip ->
|
|
||||||
Skip
|
|
||||||
end;
|
|
||||||
init_per_group(mirrored_queue, Config) ->
|
init_per_group(mirrored_queue, Config) ->
|
||||||
rabbit_ct_broker_helpers:set_ha_policy(Config, 0, <<"^max_length.*queue">>,
|
rabbit_ct_broker_helpers:set_ha_policy(Config, 0, <<"^max_length.*queue">>,
|
||||||
<<"all">>, [{<<"ha-sync-mode">>, <<"automatic">>}]),
|
<<"all">>, [{<<"ha-sync-mode">>, <<"automatic">>}]),
|
||||||
|
|
|
@ -67,15 +67,10 @@ init_per_group(max_length_classic, Config) ->
|
||||||
[{queue_args, [{<<"x-queue-type">>, longstr, <<"classic">>}]},
|
[{queue_args, [{<<"x-queue-type">>, longstr, <<"classic">>}]},
|
||||||
{queue_durable, false}]);
|
{queue_durable, false}]);
|
||||||
init_per_group(max_length_quorum, Config) ->
|
init_per_group(max_length_quorum, Config) ->
|
||||||
case rabbit_ct_broker_helpers:enable_feature_flag(Config, quorum_queue) of
|
rabbit_ct_helpers:set_config(
|
||||||
ok ->
|
Config,
|
||||||
rabbit_ct_helpers:set_config(
|
[{queue_args, [{<<"x-queue-type">>, longstr, <<"quorum">>}]},
|
||||||
Config,
|
{queue_durable, true}]);
|
||||||
[{queue_args, [{<<"x-queue-type">>, longstr, <<"quorum">>}]},
|
|
||||||
{queue_durable, true}]);
|
|
||||||
Skip ->
|
|
||||||
Skip
|
|
||||||
end;
|
|
||||||
init_per_group(max_length_mirrored, Config) ->
|
init_per_group(max_length_mirrored, Config) ->
|
||||||
rabbit_ct_broker_helpers:set_ha_policy(Config, 0, <<"^max_length.*queue">>,
|
rabbit_ct_broker_helpers:set_ha_policy(Config, 0, <<"^max_length.*queue">>,
|
||||||
<<"all">>, [{<<"ha-sync-mode">>, <<"automatic">>}]),
|
<<"all">>, [{<<"ha-sync-mode">>, <<"automatic">>}]),
|
||||||
|
|
|
@ -90,40 +90,25 @@ init_per_group(classic_queue, Config) ->
|
||||||
{consumer_args, []},
|
{consumer_args, []},
|
||||||
{queue_durable, true}]);
|
{queue_durable, true}]);
|
||||||
init_per_group(quorum_queue, Config) ->
|
init_per_group(quorum_queue, Config) ->
|
||||||
case rabbit_ct_broker_helpers:enable_feature_flag(Config, quorum_queue) of
|
rabbit_ct_helpers:set_config(
|
||||||
ok ->
|
Config,
|
||||||
rabbit_ct_helpers:set_config(
|
[{queue_args, [{<<"x-queue-type">>, longstr, <<"quorum">>}]},
|
||||||
Config,
|
{consumer_args, []},
|
||||||
[{queue_args, [{<<"x-queue-type">>, longstr, <<"quorum">>}]},
|
{queue_durable, true}]);
|
||||||
{consumer_args, []},
|
|
||||||
{queue_durable, true}]);
|
|
||||||
Skip ->
|
|
||||||
Skip
|
|
||||||
end;
|
|
||||||
init_per_group(quorum_queue_in_memory_limit, Config) ->
|
init_per_group(quorum_queue_in_memory_limit, Config) ->
|
||||||
case rabbit_ct_broker_helpers:enable_feature_flag(Config, quorum_queue) of
|
rabbit_ct_helpers:set_config(
|
||||||
ok ->
|
Config,
|
||||||
rabbit_ct_helpers:set_config(
|
[{queue_args, [{<<"x-queue-type">>, longstr, <<"quorum">>},
|
||||||
Config,
|
{<<"x-max-in-memory-length">>, long, 1}]},
|
||||||
[{queue_args, [{<<"x-queue-type">>, longstr, <<"quorum">>},
|
{consumer_args, []},
|
||||||
{<<"x-max-in-memory-length">>, long, 1}]},
|
{queue_durable, true}]);
|
||||||
{consumer_args, []},
|
|
||||||
{queue_durable, true}]);
|
|
||||||
Skip ->
|
|
||||||
Skip
|
|
||||||
end;
|
|
||||||
init_per_group(quorum_queue_in_memory_bytes, Config) ->
|
init_per_group(quorum_queue_in_memory_bytes, Config) ->
|
||||||
case rabbit_ct_broker_helpers:enable_feature_flag(Config, quorum_queue) of
|
rabbit_ct_helpers:set_config(
|
||||||
ok ->
|
Config,
|
||||||
rabbit_ct_helpers:set_config(
|
[{queue_args, [{<<"x-queue-type">>, longstr, <<"quorum">>},
|
||||||
Config,
|
{<<"x-max-in-memory-bytes">>, long, 1}]},
|
||||||
[{queue_args, [{<<"x-queue-type">>, longstr, <<"quorum">>},
|
{consumer_args, []},
|
||||||
{<<"x-max-in-memory-bytes">>, long, 1}]},
|
{queue_durable, true}]);
|
||||||
{consumer_args, []},
|
|
||||||
{queue_durable, true}]);
|
|
||||||
Skip ->
|
|
||||||
Skip
|
|
||||||
end;
|
|
||||||
init_per_group(mirrored_queue, Config) ->
|
init_per_group(mirrored_queue, Config) ->
|
||||||
rabbit_ct_broker_helpers:set_ha_policy(Config, 0, <<"^max_length.*queue">>,
|
rabbit_ct_broker_helpers:set_ha_policy(Config, 0, <<"^max_length.*queue">>,
|
||||||
<<"all">>, [{<<"ha-sync-mode">>, <<"automatic">>}]),
|
<<"all">>, [{<<"ha-sync-mode">>, <<"automatic">>}]),
|
||||||
|
|
|
@ -54,30 +54,24 @@ init_per_group(Group, Config) ->
|
||||||
Config2 = rabbit_ct_helpers:run_steps(Config1b,
|
Config2 = rabbit_ct_helpers:run_steps(Config1b,
|
||||||
[fun merge_app_env/1 ] ++
|
[fun merge_app_env/1 ] ++
|
||||||
rabbit_ct_broker_helpers:setup_steps()),
|
rabbit_ct_broker_helpers:setup_steps()),
|
||||||
case rabbit_ct_broker_helpers:enable_feature_flag(Config2, quorum_queue) of
|
ok = rabbit_ct_broker_helpers:rpc(
|
||||||
ok ->
|
Config2, 0, application, set_env,
|
||||||
ok = rabbit_ct_broker_helpers:rpc(
|
[rabbit, channel_tick_interval, 100]),
|
||||||
Config2, 0, application, set_env,
|
%% HACK: the larger cluster sizes benefit for a bit more time
|
||||||
[rabbit, channel_tick_interval, 100]),
|
%% after clustering before running the tests.
|
||||||
%% HACK: the larger cluster sizes benefit for a bit more time
|
Config3 = case Group of
|
||||||
%% after clustering before running the tests.
|
cluster_size_5 ->
|
||||||
Config3 = case Group of
|
timer:sleep(5000),
|
||||||
cluster_size_5 ->
|
Config2;
|
||||||
timer:sleep(5000),
|
_ ->
|
||||||
Config2;
|
Config2
|
||||||
_ ->
|
end,
|
||||||
Config2
|
|
||||||
end,
|
|
||||||
|
|
||||||
rabbit_ct_broker_helpers:set_policy(
|
rabbit_ct_broker_helpers:set_policy(
|
||||||
Config3, 0,
|
Config3, 0,
|
||||||
<<"ha-policy">>, <<".*">>, <<"queues">>,
|
<<"ha-policy">>, <<".*">>, <<"queues">>,
|
||||||
[{<<"ha-mode">>, <<"all">>}]),
|
[{<<"ha-mode">>, <<"all">>}]),
|
||||||
Config3;
|
Config3.
|
||||||
Skip ->
|
|
||||||
end_per_group(Group, Config2),
|
|
||||||
Skip
|
|
||||||
end.
|
|
||||||
|
|
||||||
merge_app_env(Config) ->
|
merge_app_env(Config) ->
|
||||||
rabbit_ct_helpers:merge_app_env(
|
rabbit_ct_helpers:merge_app_env(
|
||||||
|
|
|
@ -211,22 +211,14 @@ init_per_group(Group, Config) ->
|
||||||
{skip, _} ->
|
{skip, _} ->
|
||||||
Ret;
|
Ret;
|
||||||
Config2 ->
|
Config2 ->
|
||||||
EnableFF = rabbit_ct_broker_helpers:enable_feature_flag(
|
ok = rabbit_ct_broker_helpers:rpc(
|
||||||
Config2, quorum_queue),
|
Config2, 0, application, set_env,
|
||||||
case EnableFF of
|
[rabbit, channel_tick_interval, 100]),
|
||||||
ok ->
|
%% HACK: the larger cluster sizes benefit for a bit
|
||||||
ok = rabbit_ct_broker_helpers:rpc(
|
%% more time after clustering before running the
|
||||||
Config2, 0, application, set_env,
|
%% tests.
|
||||||
[rabbit, channel_tick_interval, 100]),
|
timer:sleep(ClusterSize * 1000),
|
||||||
%% HACK: the larger cluster sizes benefit for a bit
|
Config2
|
||||||
%% more time after clustering before running the
|
|
||||||
%% tests.
|
|
||||||
timer:sleep(ClusterSize * 1000),
|
|
||||||
Config2;
|
|
||||||
Skip ->
|
|
||||||
end_per_group(Group, Config2),
|
|
||||||
Skip
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
@ -252,24 +244,10 @@ init_per_testcase(Testcase, Config) when Testcase == reconnect_consumer_and_publ
|
||||||
{queue_name, Q},
|
{queue_name, Q},
|
||||||
{alt_queue_name, <<Q/binary, "_alt">>}
|
{alt_queue_name, <<Q/binary, "_alt">>}
|
||||||
]),
|
]),
|
||||||
Ret = rabbit_ct_helpers:run_steps(
|
rabbit_ct_helpers:run_steps(
|
||||||
Config2,
|
Config2,
|
||||||
rabbit_ct_broker_helpers:setup_steps() ++
|
rabbit_ct_broker_helpers:setup_steps() ++
|
||||||
rabbit_ct_client_helpers:setup_steps()),
|
rabbit_ct_client_helpers:setup_steps());
|
||||||
case Ret of
|
|
||||||
{skip, _} ->
|
|
||||||
Ret;
|
|
||||||
Config3 ->
|
|
||||||
EnableFF = rabbit_ct_broker_helpers:enable_feature_flag(
|
|
||||||
Config3, quorum_queue),
|
|
||||||
case EnableFF of
|
|
||||||
ok ->
|
|
||||||
Config3;
|
|
||||||
Skip ->
|
|
||||||
end_per_testcase(Testcase, Config3),
|
|
||||||
Skip
|
|
||||||
end
|
|
||||||
end;
|
|
||||||
init_per_testcase(Testcase, Config) ->
|
init_per_testcase(Testcase, Config) ->
|
||||||
ClusterSize = ?config(rmq_nodes_count, Config),
|
ClusterSize = ?config(rmq_nodes_count, Config),
|
||||||
IsMixed = rabbit_ct_helpers:is_mixed_versions(),
|
IsMixed = rabbit_ct_helpers:is_mixed_versions(),
|
||||||
|
@ -309,15 +287,6 @@ init_per_testcase(Testcase, Config) ->
|
||||||
{alt_queue_name, <<Q/binary, "_alt">>},
|
{alt_queue_name, <<Q/binary, "_alt">>},
|
||||||
{alt_2_queue_name, <<Q/binary, "_alt_2">>}
|
{alt_2_queue_name, <<Q/binary, "_alt_2">>}
|
||||||
]),
|
]),
|
||||||
EnableFF = rabbit_ct_broker_helpers:enable_feature_flag(
|
|
||||||
Config2, quorum_queue),
|
|
||||||
case EnableFF of
|
|
||||||
ok ->
|
|
||||||
Config2;
|
|
||||||
Skip ->
|
|
||||||
end_per_testcase(Testcase, Config2),
|
|
||||||
Skip
|
|
||||||
end,
|
|
||||||
rabbit_ct_helpers:run_steps(Config2, rabbit_ct_client_helpers:setup_steps())
|
rabbit_ct_helpers:run_steps(Config2, rabbit_ct_client_helpers:setup_steps())
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
|
|
@ -95,11 +95,8 @@ init_per_group(Group, Config, NodesCount) ->
|
||||||
ok = rabbit_ct_broker_helpers:rpc(
|
ok = rabbit_ct_broker_helpers:rpc(
|
||||||
Config2, 0, application, set_env,
|
Config2, 0, application, set_env,
|
||||||
[rabbit, channel_tick_interval, 100]),
|
[rabbit, channel_tick_interval, 100]),
|
||||||
case rabbit_ct_broker_helpers:enable_feature_flag(Config2, quorum_queue) of
|
case rabbit_ct_broker_helpers:enable_feature_flag(Config2, stream_queue) of
|
||||||
ok -> case rabbit_ct_broker_helpers:enable_feature_flag(Config2, stream_queue) of
|
ok -> Config2;
|
||||||
ok -> Config2;
|
|
||||||
Skip -> Skip
|
|
||||||
end;
|
|
||||||
Skip -> Skip
|
Skip -> Skip
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
|
|
@ -43,16 +43,9 @@ init_per_group(tests, Config0) ->
|
||||||
Config1 = rabbit_ct_helpers:set_config(
|
Config1 = rabbit_ct_helpers:set_config(
|
||||||
Config0, [{rmq_nodes_count, NumNodes},
|
Config0, [{rmq_nodes_count, NumNodes},
|
||||||
{rmq_nodes_clustered, true}]),
|
{rmq_nodes_clustered, true}]),
|
||||||
Config2 = rabbit_ct_helpers:run_steps(Config1,
|
rabbit_ct_helpers:run_steps(Config1,
|
||||||
rabbit_ct_broker_helpers:setup_steps() ++
|
rabbit_ct_broker_helpers:setup_steps() ++
|
||||||
rabbit_ct_client_helpers:setup_steps()),
|
rabbit_ct_client_helpers:setup_steps()).
|
||||||
case rabbit_ct_broker_helpers:enable_feature_flag(Config2, quorum_queue) of
|
|
||||||
ok ->
|
|
||||||
Config2;
|
|
||||||
Skip ->
|
|
||||||
end_per_group(tests, Config2),
|
|
||||||
Skip
|
|
||||||
end.
|
|
||||||
|
|
||||||
end_per_group(tests, Config) ->
|
end_per_group(tests, Config) ->
|
||||||
rabbit_ct_helpers:run_steps(Config,
|
rabbit_ct_helpers:run_steps(Config,
|
||||||
|
|
|
@ -64,21 +64,14 @@ init_per_group(classic_queue, Config) ->
|
||||||
auto_delete = true}
|
auto_delete = true}
|
||||||
} | Config];
|
} | Config];
|
||||||
init_per_group(quorum_queue, Config) ->
|
init_per_group(quorum_queue, Config) ->
|
||||||
Ret = rabbit_ct_broker_helpers:rpc(
|
[{single_active_consumer_queue_declare,
|
||||||
Config, 0, rabbit_feature_flags, enable, [quorum_queue]),
|
#'queue.declare'{
|
||||||
case Ret of
|
arguments = [
|
||||||
ok ->
|
{<<"x-single-active-consumer">>, bool, true},
|
||||||
[{single_active_consumer_queue_declare,
|
{<<"x-queue-type">>, longstr, <<"quorum">>}
|
||||||
#'queue.declare'{
|
],
|
||||||
arguments = [
|
durable = true, exclusive = false, auto_delete = false}
|
||||||
{<<"x-single-active-consumer">>, bool, true},
|
} | Config].
|
||||||
{<<"x-queue-type">>, longstr, <<"quorum">>}
|
|
||||||
],
|
|
||||||
durable = true, exclusive = false, auto_delete = false}
|
|
||||||
} | Config];
|
|
||||||
Error ->
|
|
||||||
{skip, {"Quorum queues are unsupported", Error}}
|
|
||||||
end.
|
|
||||||
|
|
||||||
end_per_group(_, Config) ->
|
end_per_group(_, Config) ->
|
||||||
Config.
|
Config.
|
||||||
|
|
|
@ -62,10 +62,7 @@ end_per_group(_Group, Config) ->
|
||||||
|
|
||||||
init_per_testcase(TestCase, Config) ->
|
init_per_testcase(TestCase, Config) ->
|
||||||
rabbit_ct_helpers:testcase_started(Config, TestCase),
|
rabbit_ct_helpers:testcase_started(Config, TestCase),
|
||||||
case rabbit_ct_broker_helpers:enable_feature_flag(Config, quorum_queue) of
|
Config.
|
||||||
ok -> Config;
|
|
||||||
Skip -> Skip
|
|
||||||
end.
|
|
||||||
|
|
||||||
end_per_testcase(TestCase, Config) ->
|
end_per_testcase(TestCase, Config) ->
|
||||||
rabbit_ct_helpers:testcase_finished(Config, TestCase).
|
rabbit_ct_helpers:testcase_finished(Config, TestCase).
|
||||||
|
|
|
@ -48,26 +48,10 @@ init_per_group(Group, Config) ->
|
||||||
{rmq_nodename_suffix, Suffix},
|
{rmq_nodename_suffix, Suffix},
|
||||||
{amqp10_client_library, Group}
|
{amqp10_client_library, Group}
|
||||||
]),
|
]),
|
||||||
Config2 = rabbit_ct_helpers:run_setup_steps(
|
rabbit_ct_helpers:run_setup_steps(
|
||||||
Config1,
|
Config1,
|
||||||
rabbit_ct_broker_helpers:setup_steps() ++
|
rabbit_ct_broker_helpers:setup_steps() ++
|
||||||
rabbit_ct_client_helpers:setup_steps()),
|
rabbit_ct_client_helpers:setup_steps()).
|
||||||
Nodes = rabbit_ct_broker_helpers:get_node_configs(
|
|
||||||
Config2, nodename),
|
|
||||||
Ret = rabbit_ct_broker_helpers:rpc(
|
|
||||||
Config2, 0,
|
|
||||||
rabbit_feature_flags,
|
|
||||||
is_supported_remotely,
|
|
||||||
[Nodes, [quorum_queue], 60000]),
|
|
||||||
case Ret of
|
|
||||||
true ->
|
|
||||||
ok = rabbit_ct_broker_helpers:rpc(
|
|
||||||
Config2, 0, rabbit_feature_flags, enable, [quorum_queue]),
|
|
||||||
Config2;
|
|
||||||
false ->
|
|
||||||
end_per_group(Group, Config2),
|
|
||||||
{skip, "Quorum queues are unsupported"}
|
|
||||||
end.
|
|
||||||
|
|
||||||
end_per_group(_, Config) ->
|
end_per_group(_, Config) ->
|
||||||
rabbit_ct_helpers:run_teardown_steps(Config,
|
rabbit_ct_helpers:run_teardown_steps(Config,
|
||||||
|
|
|
@ -138,23 +138,10 @@ init_per_group1(Group, Config) ->
|
||||||
{rmq_nodename_suffix, Suffix},
|
{rmq_nodename_suffix, Suffix},
|
||||||
{rmq_nodes_clustered, false}
|
{rmq_nodes_clustered, false}
|
||||||
]),
|
]),
|
||||||
Config2 = rabbit_ct_helpers:run_steps(Config1,
|
rabbit_ct_helpers:run_steps(Config1,
|
||||||
rabbit_ct_broker_helpers:setup_steps() ++
|
rabbit_ct_broker_helpers:setup_steps() ++
|
||||||
rabbit_ct_client_helpers:setup_steps() ++
|
rabbit_ct_client_helpers:setup_steps() ++
|
||||||
SetupFederation ++ Disambiguate),
|
SetupFederation ++ Disambiguate).
|
||||||
case ?config(target_queue_type, Config2) of
|
|
||||||
quorum ->
|
|
||||||
case rabbit_ct_broker_helpers:enable_feature_flag(Config2, quorum_queue) of
|
|
||||||
ok ->
|
|
||||||
Config2;
|
|
||||||
{skip, Skip} ->
|
|
||||||
Skip;
|
|
||||||
Other ->
|
|
||||||
{skip, Other}
|
|
||||||
end;
|
|
||||||
_ ->
|
|
||||||
Config2
|
|
||||||
end.
|
|
||||||
|
|
||||||
end_per_group(without_disambiguate, Config) ->
|
end_per_group(without_disambiguate, Config) ->
|
||||||
Config;
|
Config;
|
||||||
|
|
|
@ -177,49 +177,14 @@ finish_init(Group, Config) ->
|
||||||
Config1 = rabbit_ct_helpers:set_config(Config, NodeConf),
|
Config1 = rabbit_ct_helpers:set_config(Config, NodeConf),
|
||||||
merge_app_env(Config1).
|
merge_app_env(Config1).
|
||||||
|
|
||||||
enable_feature_flag_or_skip(FFName, Group, Config0) ->
|
|
||||||
Config1 = finish_init(Group, Config0),
|
|
||||||
Config2 = start_broker(Config1),
|
|
||||||
Nodes = rabbit_ct_broker_helpers:get_node_configs(
|
|
||||||
Config2, nodename),
|
|
||||||
Ret = rabbit_ct_broker_helpers:rpc(
|
|
||||||
Config2, 0,
|
|
||||||
rabbit_feature_flags,
|
|
||||||
is_supported_remotely,
|
|
||||||
[Nodes, [FFName], 60000]),
|
|
||||||
case Ret of
|
|
||||||
true ->
|
|
||||||
ok = rabbit_ct_broker_helpers:rpc(
|
|
||||||
Config2, 0, rabbit_feature_flags, enable, [FFName]),
|
|
||||||
Config2;
|
|
||||||
false ->
|
|
||||||
end_per_group(Group, Config2),
|
|
||||||
{skip, rabbit_misc:format("Feature flag '~s' is not supported", [FFName])}
|
|
||||||
end.
|
|
||||||
|
|
||||||
init_per_group(all_tests_with_prefix=Group, Config0) ->
|
init_per_group(all_tests_with_prefix=Group, Config0) ->
|
||||||
PathConfig = {rabbitmq_management, [{path_prefix, ?PATH_PREFIX}]},
|
PathConfig = {rabbitmq_management, [{path_prefix, ?PATH_PREFIX}]},
|
||||||
Config1 = rabbit_ct_helpers:merge_app_env(Config0, PathConfig),
|
Config1 = rabbit_ct_helpers:merge_app_env(Config0, PathConfig),
|
||||||
Config2 = finish_init(Group, Config1),
|
Config2 = finish_init(Group, Config1),
|
||||||
Config3 = start_broker(Config2),
|
start_broker(Config2);
|
||||||
Nodes = rabbit_ct_broker_helpers:get_node_configs(
|
|
||||||
Config3, nodename),
|
|
||||||
Ret = rabbit_ct_broker_helpers:rpc(
|
|
||||||
Config3, 0,
|
|
||||||
rabbit_feature_flags,
|
|
||||||
is_supported_remotely,
|
|
||||||
[Nodes, [quorum_queue], 60000]),
|
|
||||||
case Ret of
|
|
||||||
true ->
|
|
||||||
ok = rabbit_ct_broker_helpers:rpc(
|
|
||||||
Config3, 0, rabbit_feature_flags, enable, [quorum_queue]),
|
|
||||||
Config3;
|
|
||||||
false ->
|
|
||||||
end_per_group(Group, Config3),
|
|
||||||
{skip, "Quorum queues are unsupported"}
|
|
||||||
end;
|
|
||||||
init_per_group(Group, Config0) ->
|
init_per_group(Group, Config0) ->
|
||||||
enable_feature_flag_or_skip(quorum_queue, Group, Config0).
|
Config1 = finish_init(Group, Config0),
|
||||||
|
start_broker(Config1).
|
||||||
|
|
||||||
end_per_group(_, Config) ->
|
end_per_group(_, Config) ->
|
||||||
inets:stop(),
|
inets:stop(),
|
||||||
|
|
|
@ -65,24 +65,10 @@ init_per_group(Group, Config0) ->
|
||||||
{rmq_nodes_count, ClusterSize},
|
{rmq_nodes_count, ClusterSize},
|
||||||
{tcp_ports_base}],
|
{tcp_ports_base}],
|
||||||
Config2 = rabbit_ct_helpers:set_config(Config1, NodeConf),
|
Config2 = rabbit_ct_helpers:set_config(Config1, NodeConf),
|
||||||
Ret = rabbit_ct_helpers:run_setup_steps(
|
rabbit_ct_helpers:run_setup_steps(
|
||||||
Config2,
|
Config2,
|
||||||
rabbit_ct_broker_helpers:setup_steps() ++
|
rabbit_ct_broker_helpers:setup_steps() ++
|
||||||
rabbit_ct_client_helpers:setup_steps()),
|
rabbit_ct_client_helpers:setup_steps()).
|
||||||
case Ret of
|
|
||||||
{skip, _} ->
|
|
||||||
Ret;
|
|
||||||
Config3 ->
|
|
||||||
EnableFF = rabbit_ct_broker_helpers:enable_feature_flag(
|
|
||||||
Config3, quorum_queue),
|
|
||||||
case EnableFF of
|
|
||||||
ok ->
|
|
||||||
Config3;
|
|
||||||
Skip ->
|
|
||||||
end_per_group(Group, Config3),
|
|
||||||
Skip
|
|
||||||
end
|
|
||||||
end.
|
|
||||||
|
|
||||||
end_per_group(_, Config) ->
|
end_per_group(_, Config) ->
|
||||||
inets:stop(),
|
inets:stop(),
|
||||||
|
|
|
@ -122,42 +122,10 @@ init_per_group(all_tests_with_prefix=Group, Config0) ->
|
||||||
PathConfig = {rabbitmq_management, [{path_prefix, ?PATH_PREFIX}]},
|
PathConfig = {rabbitmq_management, [{path_prefix, ?PATH_PREFIX}]},
|
||||||
Config1 = rabbit_ct_helpers:merge_app_env(Config0, PathConfig),
|
Config1 = rabbit_ct_helpers:merge_app_env(Config0, PathConfig),
|
||||||
Config2 = finish_init(Group, Config1),
|
Config2 = finish_init(Group, Config1),
|
||||||
Config3 = start_broker(Config2),
|
Config3 = start_broker(Config2);
|
||||||
Nodes = rabbit_ct_broker_helpers:get_node_configs(
|
|
||||||
Config3, nodename),
|
|
||||||
Ret = rabbit_ct_broker_helpers:rpc(
|
|
||||||
Config3, 0,
|
|
||||||
rabbit_feature_flags,
|
|
||||||
is_supported_remotely,
|
|
||||||
[Nodes, [quorum_queue], 60000]),
|
|
||||||
case Ret of
|
|
||||||
true ->
|
|
||||||
ok = rabbit_ct_broker_helpers:rpc(
|
|
||||||
Config3, 0, rabbit_feature_flags, enable, [quorum_queue]),
|
|
||||||
Config3;
|
|
||||||
false ->
|
|
||||||
end_per_group(Group, Config3),
|
|
||||||
{skip, "Quorum queues are unsupported"}
|
|
||||||
end;
|
|
||||||
init_per_group(Group, Config0) ->
|
init_per_group(Group, Config0) ->
|
||||||
Config1 = finish_init(Group, Config0),
|
Config1 = finish_init(Group, Config0),
|
||||||
Config2 = start_broker(Config1),
|
Config2 = start_broker(Config1).
|
||||||
Nodes = rabbit_ct_broker_helpers:get_node_configs(
|
|
||||||
Config2, nodename),
|
|
||||||
Ret = rabbit_ct_broker_helpers:rpc(
|
|
||||||
Config2, 0,
|
|
||||||
rabbit_feature_flags,
|
|
||||||
is_supported_remotely,
|
|
||||||
[Nodes, [quorum_queue], 60000]),
|
|
||||||
case Ret of
|
|
||||||
true ->
|
|
||||||
ok = rabbit_ct_broker_helpers:rpc(
|
|
||||||
Config2, 0, rabbit_feature_flags, enable, [quorum_queue]),
|
|
||||||
Config2;
|
|
||||||
false ->
|
|
||||||
end_per_group(Group, Config2),
|
|
||||||
{skip, "Quorum queues are unsupported"}
|
|
||||||
end.
|
|
||||||
|
|
||||||
end_per_group(_, Config) ->
|
end_per_group(_, Config) ->
|
||||||
inets:stop(),
|
inets:stop(),
|
||||||
|
|
|
@ -77,22 +77,6 @@ init_per_group(_, Config) ->
|
||||||
end_per_group(_, Config) ->
|
end_per_group(_, Config) ->
|
||||||
Config.
|
Config.
|
||||||
|
|
||||||
init_per_testcase(quorum_queue_stats = Testcase, Config) ->
|
|
||||||
case rabbit_ct_helpers:is_mixed_versions() of
|
|
||||||
true ->
|
|
||||||
{skip, "not mixed versions compatible"};
|
|
||||||
_ ->
|
|
||||||
case rabbit_ct_broker_helpers:enable_feature_flag(Config, quorum_queue) of
|
|
||||||
ok ->
|
|
||||||
rabbit_ct_helpers:testcase_started(Config, Testcase),
|
|
||||||
rabbit_ct_helpers:run_steps(
|
|
||||||
Config, rabbit_ct_client_helpers:setup_steps());
|
|
||||||
{skip, _} = Skip ->
|
|
||||||
Skip;
|
|
||||||
Other ->
|
|
||||||
{skip, Other}
|
|
||||||
end
|
|
||||||
end;
|
|
||||||
init_per_testcase(Testcase, Config) ->
|
init_per_testcase(Testcase, Config) ->
|
||||||
rabbit_ct_helpers:testcase_started(Config, Testcase),
|
rabbit_ct_helpers:testcase_started(Config, Testcase),
|
||||||
rabbit_ct_helpers:run_steps(Config,
|
rabbit_ct_helpers:run_steps(Config,
|
||||||
|
|
|
@ -12,8 +12,7 @@
|
||||||
|
|
||||||
all() ->
|
all() ->
|
||||||
[
|
[
|
||||||
{group, non_parallel_tests},
|
{group, non_parallel_tests}
|
||||||
{group, non_parallel_tests_quorum}
|
|
||||||
].
|
].
|
||||||
|
|
||||||
groups() ->
|
groups() ->
|
||||||
|
@ -21,9 +20,7 @@ groups() ->
|
||||||
{non_parallel_tests, [], [
|
{non_parallel_tests, [], [
|
||||||
block,
|
block,
|
||||||
handle_invalid_frames,
|
handle_invalid_frames,
|
||||||
stats
|
stats,
|
||||||
]},
|
|
||||||
{non_parallel_tests_quorum, [], [
|
|
||||||
quorum_session_false,
|
quorum_session_false,
|
||||||
quorum_session_true,
|
quorum_session_true,
|
||||||
classic_session_true,
|
classic_session_true,
|
||||||
|
@ -62,14 +59,6 @@ end_per_suite(Config) ->
|
||||||
rabbit_ct_client_helpers:teardown_steps() ++
|
rabbit_ct_client_helpers:teardown_steps() ++
|
||||||
rabbit_ct_broker_helpers:teardown_steps()).
|
rabbit_ct_broker_helpers:teardown_steps()).
|
||||||
|
|
||||||
init_per_group(non_parallel_tests_quorum, Config) ->
|
|
||||||
%% Added for quorum queue test else the mixing test would fail
|
|
||||||
%% with "feature flag is disabled"
|
|
||||||
case rabbit_ct_broker_helpers:enable_feature_flag(Config, quorum_queue) of
|
|
||||||
ok -> Config;
|
|
||||||
Skip -> Skip
|
|
||||||
end,
|
|
||||||
Config;
|
|
||||||
init_per_group(_, Config) ->
|
init_per_group(_, Config) ->
|
||||||
Config.
|
Config.
|
||||||
|
|
||||||
|
|
|
@ -169,7 +169,6 @@ init_per_group(aggregated_metrics, Config0) ->
|
||||||
[{rabbit, [{collect_statistics, coarse}, {collect_statistics_interval, 100}]}]
|
[{rabbit, [{collect_statistics, coarse}, {collect_statistics_interval, 100}]}]
|
||||||
),
|
),
|
||||||
Config2 = init_per_group(aggregated_metrics, Config1, []),
|
Config2 = init_per_group(aggregated_metrics, Config1, []),
|
||||||
ok = rabbit_ct_broker_helpers:enable_feature_flag(Config2, quorum_queue),
|
|
||||||
|
|
||||||
A = rabbit_ct_broker_helpers:get_node_config(Config2, 0, nodename),
|
A = rabbit_ct_broker_helpers:get_node_config(Config2, 0, nodename),
|
||||||
Ch = rabbit_ct_client_helpers:open_channel(Config2, A),
|
Ch = rabbit_ct_client_helpers:open_channel(Config2, A),
|
||||||
|
|
|
@ -82,7 +82,6 @@ init_per_group(Group, Config)
|
||||||
{rabbit,
|
{rabbit,
|
||||||
[{forced_feature_flags_on_init,
|
[{forced_feature_flags_on_init,
|
||||||
[classic_mirrored_queue_version,
|
[classic_mirrored_queue_version,
|
||||||
quorum_queue,
|
|
||||||
stream_queue]}]})
|
stream_queue]}]})
|
||||||
end];
|
end];
|
||||||
_ ->
|
_ ->
|
||||||
|
|
Loading…
Reference in New Issue