Skip to content

Commit c0bd1f5

Browse files
committed
Tests: add rabbitmq_diagnostics to test helpers
1 parent cc0458a commit c0bd1f5

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

Lines changed: 18 additions & 1 deletion
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,
@@ -219,6 +219,7 @@ setup_steps() ->
219219
fun rabbit_ct_helpers:ensure_rabbitmqctl_cmd/1,
220220
fun rabbit_ct_helpers:ensure_rabbitmqctl_app/1,
221221
fun rabbit_ct_helpers:ensure_rabbitmq_plugins_cmd/1,
222+
fun rabbit_ct_helpers:ensure_rabbitmq_diagnostics_cmd/1,
222223
fun set_lager_flood_limit/1,
223224
fun configure_metadata_store/1,
224225
fun start_rabbitmq_nodes/1,
@@ -229,6 +230,7 @@ setup_steps() ->
229230
fun rabbit_ct_helpers:ensure_rabbitmqctl_cmd/1,
230231
fun rabbit_ct_helpers:load_rabbitmqctl_app/1,
231232
fun rabbit_ct_helpers:ensure_rabbitmq_plugins_cmd/1,
233+
fun rabbit_ct_helpers:ensure_rabbitmq_diagnostics_cmd/1,
232234
fun set_lager_flood_limit/1,
233235
fun configure_metadata_store/1,
234236
fun start_rabbitmq_nodes/1,
@@ -1565,6 +1567,21 @@ rabbitmq_queues(Config, Node, Args) ->
15651567
Cmd = [RabbitmqQueues, "-n", Nodename | Args],
15661568
rabbit_ct_helpers:exec(Cmd, [{env, Env}]).
15671569

1570+
rabbitmq_diagnostics(Config, Node, Args) ->
1571+
Rabbitmqdiagnostics = ?config(rabbitmq_diagnostics_cmd, Config),
1572+
NodeConfig = get_node_config(Config, Node),
1573+
Nodename = ?config(nodename, NodeConfig),
1574+
Env = [
1575+
{"RABBITMQ_SCRIPTS_DIR", filename:dirname(Rabbitmqdiagnostics)},
1576+
{"RABBITMQ_PID_FILE", ?config(pid_file, NodeConfig)},
1577+
{"RABBITMQ_MNESIA_DIR", ?config(data_dir, NodeConfig)},
1578+
{"RABBITMQ_PLUGINS_DIR", ?config(plugins_dir, NodeConfig)},
1579+
{"RABBITMQ_ENABLED_PLUGINS_FILE",
1580+
?config(enabled_plugins_file, NodeConfig)}
1581+
],
1582+
Cmd = [Rabbitmqdiagnostics, "-n", Nodename | Args],
1583+
rabbit_ct_helpers:exec(Cmd, [{env, Env}]).
1584+
15681585
%% -------------------------------------------------------------------
15691586
%% Other helpers.
15701587
%% -------------------------------------------------------------------

deps/rabbitmq_ct_helpers/src/rabbit_ct_helpers.erl

Lines changed: 36 additions & 0 deletions
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)