Merge pull request #13964 from rabbitmq/ik-qq-tests-reorg
Trigger a 4.2.x alpha release build / trigger_alpha_build (push) Waiting to run Details
Test Authentication/Authorization backends via mutiple messaging protocols / selenium (chrome, 1.17.3, 27.3) (push) Waiting to run Details
Test Authentication/Authorization backends via mutiple messaging protocols / summary-selenium (push) Blocked by required conditions Details
Test (make) / Build and Xref (1.17, 26) (push) Waiting to run Details
Test (make) / Build and Xref (1.17, 27) (push) Waiting to run Details
Test (make) / Test (1.17, 27, khepri) (push) Waiting to run Details
Test (make) / Test (1.17, 27, mnesia) (push) Waiting to run Details
Test (make) / Test mixed clusters (1.17, 27, khepri) (push) Waiting to run Details
Test (make) / Test mixed clusters (1.17, 27, mnesia) (push) Waiting to run Details
Test (make) / Type check (1.17, 27) (push) Waiting to run Details
Test Management UI with Selenium / selenium (chrome, 1.17.3, 27.3) (push) Waiting to run Details

Refactor QQ tests slightly so useful parts are accessible elsewhere
This commit is contained in:
Michael Klishin 2025-05-28 13:30:58 +04:00 committed by GitHub
commit 924b451b73
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 12 additions and 9 deletions

View File

@ -191,7 +191,7 @@ maintenance_mode_status(Config) ->
listener_suspension_status(Config) ->
Nodes = [A | _] = rabbit_ct_broker_helpers:get_node_configs(Config, nodename),
ct:pal("Picked node ~ts for maintenance tests...", [A]),
ct:log("Picked node ~ts for maintenance tests...", [A]),
rabbit_ct_helpers:await_condition(
fun () -> not rabbit_ct_broker_helpers:is_being_drained_local_read(Config, A) end, 10000),
@ -261,7 +261,7 @@ quorum_queue_leadership_transfer(Config) ->
fun () -> rabbit_ct_broker_helpers:is_being_drained_local_read(Config, A) end, 10000),
%% quorum queue leader election is asynchronous
AllTheSame = queue_utils:fifo_machines_use_same_version(
AllTheSame = queue_utils:ra_machines_use_same_version(rabbit_fifo,
Config, Nodenames),
case AllTheSame of
true ->

View File

@ -8,12 +8,12 @@
wait_for_messages_total/3,
wait_for_messages/2,
wait_for_messages/3,
wait_for_messages/4,
wait_for_min_messages/3,
wait_for_max_messages/3,
dirty_query/3,
ra_name/1,
fifo_machines_use_same_version/1,
fifo_machines_use_same_version/2,
ra_machines_use_same_version/3,
wait_for_local_stream_member/4,
has_local_stream_member_rpc/1
]).
@ -36,12 +36,15 @@ wait_for_messages_total(Servers, QName, Total) ->
fun rabbit_fifo:query_messages_total/1,
?WFM_DEFAULT_NUMS).
wait_for_messages(Servers, QName, Total, Fun) ->
wait_for_messages(Servers, QName, Total, Fun, ?WFM_DEFAULT_NUMS).
wait_for_messages(Servers, QName, Number, Fun, 0) ->
Msgs = dirty_query(Servers, QName, Fun),
?assertEqual([Number || _ <- lists:seq(1, length(Servers))], Msgs);
wait_for_messages(Servers, QName, Number, Fun, N) ->
Msgs = dirty_query(Servers, QName, Fun),
ct:pal("Got messages ~tp ~tp", [QName, Msgs]),
ct:log("Got messages ~tp ~tp", [QName, Msgs]),
%% hack to allow the check to succeed in mixed versions clusters if at
%% least one node matches the criteria rather than all nodes for
F = case rabbit_ct_helpers:is_mixed_versions() of
@ -157,16 +160,16 @@ filter_queues(Expected, Got) ->
lists:member(hd(G), Keys)
end, Got).
fifo_machines_use_same_version(Config) ->
ra_machines_use_same_version(Config) ->
Nodenames = rabbit_ct_broker_helpers:get_node_configs(Config, nodename),
fifo_machines_use_same_version(Config, Nodenames).
ra_machines_use_same_version(rabbit_fifo, Config, Nodenames).
fifo_machines_use_same_version(Config, Nodenames)
ra_machines_use_same_version(MachineModule, Config, Nodenames)
when length(Nodenames) >= 1 ->
[MachineAVersion | OtherMachinesVersions] =
[(catch rabbit_ct_broker_helpers:rpc(
Config, Nodename,
rabbit_fifo, version, []))
MachineModule, version, []))
|| Nodename <- Nodenames],
lists:all(fun(V) -> V =:= MachineAVersion end, OtherMachinesVersions).