2121 ensure_application_srcdir /4 ,
2222 ensure_rabbitmqctl_cmd /1 ,
2323 ensure_rabbitmqctl_app /1 ,
24+ load_rabbitmqctl_app /1 ,
2425 ensure_rabbitmq_plugins_cmd /1 ,
2526 ensure_rabbitmq_queues_cmd /1 ,
2627 start_long_running_testsuite_monitor /1 ,
@@ -67,24 +68,40 @@ run_setup_steps(Config) ->
6768 run_setup_steps (Config , []).
6869
6970run_setup_steps (Config , ExtraSteps ) ->
70- Steps = [
71- fun init_skip_as_error_flag /1 ,
72- fun guess_tested_erlang_app_name /1 ,
73- fun ensure_secondary_umbrella /1 ,
74- fun ensure_current_srcdir /1 ,
75- fun ensure_rabbitmq_ct_helpers_srcdir /1 ,
76- fun ensure_erlang_mk_depsdir /1 ,
77- fun ensure_secondary_erlang_mk_depsdir /1 ,
78- fun ensure_secondary_current_srcdir /1 ,
79- fun ensure_rabbit_common_srcdir /1 ,
80- fun ensure_rabbitmq_cli_srcdir /1 ,
81- fun ensure_rabbit_srcdir /1 ,
82- fun ensure_make_cmd /1 ,
83- fun ensure_erl_call_cmd /1 ,
84- fun ensure_ssl_certs /1 ,
85- fun start_long_running_testsuite_monitor /1 ,
86- fun load_elixir /1
87- ],
71+ Steps = case os :getenv (" RABBITMQ_RUN" ) of
72+ false ->
73+ [
74+ fun init_skip_as_error_flag /1 ,
75+ fun guess_tested_erlang_app_name /1 ,
76+ fun ensure_secondary_umbrella /1 ,
77+ fun ensure_current_srcdir /1 ,
78+ fun ensure_rabbitmq_ct_helpers_srcdir /1 ,
79+ fun ensure_erlang_mk_depsdir /1 ,
80+ fun ensure_secondary_erlang_mk_depsdir /1 ,
81+ fun ensure_secondary_current_srcdir /1 ,
82+ fun ensure_rabbit_common_srcdir /1 ,
83+ fun ensure_rabbitmq_cli_srcdir /1 ,
84+ fun ensure_rabbit_srcdir /1 ,
85+ fun ensure_make_cmd /1 ,
86+ fun ensure_erl_call_cmd /1 ,
87+ fun ensure_ssl_certs /1 ,
88+ fun start_long_running_testsuite_monitor /1 ,
89+ fun load_elixir /1
90+ ];
91+ _ ->
92+ [
93+ fun init_skip_as_error_flag /1 ,
94+ % fun guess_tested_erlang_app_name/1,
95+ fun ensure_secondary_umbrella /1 ,
96+ fun ensure_current_srcdir /1 ,
97+ fun ensure_rabbitmq_ct_helpers_srcdir /1 ,
98+ % fun ensure_rabbit_srcdir/1,
99+ fun ensure_make_cmd /1 ,
100+ fun ensure_rabbitmq_run_cmd /1 ,
101+ fun ensure_ssl_certs /1 ,
102+ fun start_long_running_testsuite_monitor /1
103+ ]
104+ end ,
88105 run_steps (Config , Steps ++ ExtraSteps ).
89106
90107run_teardown_steps (Config ) ->
@@ -117,8 +134,14 @@ run_steps(Config, [Step | Rest]) ->
117134 {skip , _ } = Error ->
118135 run_teardown_steps (Config ),
119136 Error ;
120- Config1 ->
121- run_steps (Config1 , Rest )
137+ Config1 when is_list (Config1 ) ->
138+ run_steps (Config1 , Rest );
139+ Other ->
140+ ct :pal (? LOW_IMPORTANCE ,
141+ " ~p :~p /~p failed with ~p steps remaining (Config value ~p is not a proplist)" ,
142+ [? MODULE , ? FUNCTION_NAME , ? FUNCTION_ARITY , length (Rest ), Other ]),
143+ run_teardown_steps (Config ),
144+ exit (" A setup step returned a non-proplist" )
122145 end ;
123146run_steps (Config , []) ->
124147 Config .
@@ -137,7 +160,8 @@ init_skip_as_error_flag(Config) ->
137160guess_tested_erlang_app_name (Config ) ->
138161 case os :getenv (" DIALYZER_PLT" ) of
139162 false ->
140- ok ;
163+ {skip ,
164+ " plt file required, please set DIALYZER_PLT" };
141165 Filename ->
142166 AppName0 = filename :basename (Filename , " .plt" ),
143167 AppName = string :strip (AppName0 , left , $. ),
@@ -328,6 +352,16 @@ ensure_make_cmd(Config) ->
328352 " please set MAKE or 'make_cmd' in ct config" }
329353 end .
330354
355+ ensure_rabbitmq_run_cmd (Config ) ->
356+ case os :getenv (" RABBITMQ_RUN" ) of
357+ false ->
358+ {skip ,
359+ " Bazel helper rabbitmq-run required, " ++
360+ " please set RABBITMQ_RUN" };
361+ P ->
362+ set_config (Config , {rabbitmq_run_cmd , P })
363+ end .
364+
331365ensure_erl_call_cmd (Config ) ->
332366 ErlCallDir = code :lib_dir (erl_interface , bin ),
333367 ErlCall = filename :join (ErlCallDir , " erl_call" ),
@@ -419,6 +453,17 @@ ensure_rabbitmqctl_app(Config) ->
419453 " please build rabbitmq_cli and set MIX_ENV" }
420454 end .
421455
456+ load_rabbitmqctl_app (Config ) ->
457+ case application :load (rabbitmqctl ) of
458+ ok ->
459+ Config ;
460+ {error , {already_loaded , rabbitmqctl }} ->
461+ Config ;
462+ {error , _ } ->
463+ {skip , " Application rabbitmqctl could not be loaded, " ++
464+ " please place compiled rabbitmq_cli on the code path" }
465+ end .
466+
422467ensure_rabbitmq_plugins_cmd (Config ) ->
423468 Rabbitmqplugins = case get_config (Config , rabbitmq_plugins_cmd ) of
424469 undefined ->
0 commit comments