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:
Jean-Sébastien Pédron 2022-07-29 11:48:48 +02:00
parent 4dd07e2905
commit 6e9ee4d0da
No known key found for this signature in database
GPG Key ID: 39E99761A5FD94CC
23 changed files with 139 additions and 410 deletions

View File

@ -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">>}]),

View File

@ -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 ->

View File

@ -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

View File

@ -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) ->

View File

@ -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),

View File

@ -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">>}]),

View File

@ -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">>}]),

View File

@ -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">>}]),

View File

@ -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(

View File

@ -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.

View File

@ -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.

View File

@ -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,

View File

@ -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.

View File

@ -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).

View File

@ -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,

View File

@ -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;

View File

@ -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(),

View File

@ -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(),

View File

@ -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(),

View File

@ -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,

View File

@ -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.

View File

@ -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),

View File

@ -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];
_ -> _ ->