Skip to content

Commit 5cbfa09

Browse files
Merge pull request #13428 from rabbitmq/mergify/bp/v4.0.x/pr-13426
Tests: add rabbitmq_diagnostics to test helpers (backport #13380) (backport #13426)
2 parents ab99538 + b7eddf8 commit 5cbfa09

File tree

2 files changed

+54
-1
lines changed

2 files changed

+54
-1
lines changed

deps/rabbitmq_ct_helpers/src/rabbit_ct_broker_helpers.erl

+18-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535

3636
control_action/2, control_action/3, control_action/4,
3737
rabbitmqctl/3, rabbitmqctl/4, rabbitmqctl_list/3,
38-
rabbitmq_queues/3,
38+
rabbitmq_queues/3, rabbitmq_diagnostics/3,
3939

4040
add_code_path_to_node/2,
4141
add_code_path_to_all_nodes/2,
@@ -217,6 +217,7 @@ setup_steps() ->
217217
fun rabbit_ct_helpers:ensure_rabbitmqctl_cmd/1,
218218
fun rabbit_ct_helpers:ensure_rabbitmqctl_app/1,
219219
fun rabbit_ct_helpers:ensure_rabbitmq_plugins_cmd/1,
220+
fun rabbit_ct_helpers:ensure_rabbitmq_diagnostics_cmd/1,
220221
fun set_lager_flood_limit/1,
221222
fun start_rabbitmq_nodes/1,
222223
fun share_dist_and_proxy_ports_map/1,
@@ -227,6 +228,7 @@ setup_steps() ->
227228
fun rabbit_ct_helpers:ensure_rabbitmqctl_cmd/1,
228229
fun rabbit_ct_helpers:load_rabbitmqctl_app/1,
229230
fun rabbit_ct_helpers:ensure_rabbitmq_plugins_cmd/1,
231+
fun rabbit_ct_helpers:ensure_rabbitmq_diagnostics_cmd/1,
230232
fun set_lager_flood_limit/1,
231233
fun start_rabbitmq_nodes/1,
232234
fun share_dist_and_proxy_ports_map/1,
@@ -1461,6 +1463,21 @@ rabbitmq_queues(Config, Node, Args) ->
14611463
Cmd = [RabbitmqQueues, "-n", Nodename | Args],
14621464
rabbit_ct_helpers:exec(Cmd, [{env, Env}]).
14631465

1466+
rabbitmq_diagnostics(Config, Node, Args) ->
1467+
Rabbitmqdiagnostics = ?config(rabbitmq_diagnostics_cmd, Config),
1468+
NodeConfig = get_node_config(Config, Node),
1469+
Nodename = ?config(nodename, NodeConfig),
1470+
Env = [
1471+
{"RABBITMQ_SCRIPTS_DIR", filename:dirname(Rabbitmqdiagnostics)},
1472+
{"RABBITMQ_PID_FILE", ?config(pid_file, NodeConfig)},
1473+
{"RABBITMQ_MNESIA_DIR", ?config(data_dir, NodeConfig)},
1474+
{"RABBITMQ_PLUGINS_DIR", ?config(plugins_dir, NodeConfig)},
1475+
{"RABBITMQ_ENABLED_PLUGINS_FILE",
1476+
?config(enabled_plugins_file, NodeConfig)}
1477+
],
1478+
Cmd = [Rabbitmqdiagnostics, "-n", Nodename | Args],
1479+
rabbit_ct_helpers:exec(Cmd, [{env, Env}]).
1480+
14641481
%% -------------------------------------------------------------------
14651482
%% Other helpers.
14661483
%% -------------------------------------------------------------------

deps/rabbitmq_ct_helpers/src/rabbit_ct_helpers.erl

+36
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
load_rabbitmqctl_app/1,
2828
ensure_rabbitmq_plugins_cmd/1,
2929
ensure_rabbitmq_queues_cmd/1,
30+
ensure_rabbitmq_diagnostics_cmd/1,
3031
redirect_logger_to_ct_logs/1,
3132
init_skip_as_error_flag/1,
3233
start_long_running_testsuite_monitor/1,
@@ -595,6 +596,41 @@ ensure_rabbitmq_queues_cmd(Config) ->
595596
end
596597
end.
597598

599+
ensure_rabbitmq_diagnostics_cmd(Config) ->
600+
RabbitmqDiagnostics = case get_config(Config, rabbitmq_diagnostics_cmd) of
601+
undefined ->
602+
case os:getenv("RABBITMQ_DIAGNOSTICS") of
603+
false -> find_script(Config, "rabbitmq-diagnostics");
604+
R -> R
605+
end;
606+
R ->
607+
ct:log(?LOW_IMPORTANCE,
608+
"Using rabbitmq-diagnostics from rabbitmq_diagnostics_cmd: ~tp~n", [R]),
609+
R
610+
end,
611+
Error = {skip, "rabbitmq-diagnostics required, " ++
612+
"please set 'rabbitmq_diagnostics_cmd' in ct config"},
613+
case RabbitmqDiagnostics of
614+
false ->
615+
Error;
616+
_ ->
617+
Cmd = [RabbitmqDiagnostics],
618+
Env = [
619+
{"RABBITMQ_SCRIPTS_DIR", filename:dirname(RabbitmqDiagnostics)}
620+
],
621+
case exec(Cmd, [drop_stdout, {env, Env}]) of
622+
{error, 64, _} ->
623+
set_config(Config,
624+
{rabbitmq_diagnostics_cmd,
625+
RabbitmqDiagnostics});
626+
{error, Code, Reason} ->
627+
ct:pal("Exec failed with exit code ~tp: ~tp", [Code, Reason]),
628+
Error;
629+
_ ->
630+
Error
631+
end
632+
end.
633+
598634
ensure_ssl_certs(Config) ->
599635
SrcDir = ?config(rabbitmq_ct_helpers_srcdir, Config),
600636
UniqueDir = io_lib:format(

0 commit comments

Comments
 (0)