Merge pull request #10643 from thalesmg/test-sanity-checks-v50
test: perform sanity checks when starting apps
This commit is contained in:
commit
c4f2dba9c5
|
@ -251,6 +251,7 @@ start_app(App, SpecAppConfig, Opts) ->
|
||||||
{ok, _} ->
|
{ok, _} ->
|
||||||
ok = ensure_dashboard_listeners_started(App),
|
ok = ensure_dashboard_listeners_started(App),
|
||||||
ok = wait_for_app_processes(App),
|
ok = wait_for_app_processes(App),
|
||||||
|
ok = perform_sanity_checks(App),
|
||||||
ok;
|
ok;
|
||||||
{error, Reason} ->
|
{error, Reason} ->
|
||||||
error({failed_to_start_app, App, Reason})
|
error({failed_to_start_app, App, Reason})
|
||||||
|
@ -264,6 +265,27 @@ wait_for_app_processes(emqx_conf) ->
|
||||||
wait_for_app_processes(_) ->
|
wait_for_app_processes(_) ->
|
||||||
ok.
|
ok.
|
||||||
|
|
||||||
|
%% These are checks to detect inter-suite or inter-testcase flakiness
|
||||||
|
%% early. For example, one suite might forget one application running
|
||||||
|
%% and stop others, and then the `application:start/2' callback is
|
||||||
|
%% never called again for this application.
|
||||||
|
perform_sanity_checks(emqx_rule_engine) ->
|
||||||
|
ensure_config_handler(emqx_rule_engine, [rule_engine, rules]),
|
||||||
|
ok;
|
||||||
|
perform_sanity_checks(emqx_bridge) ->
|
||||||
|
ensure_config_handler(emqx_bridge, [bridges]),
|
||||||
|
ok;
|
||||||
|
perform_sanity_checks(_App) ->
|
||||||
|
ok.
|
||||||
|
|
||||||
|
ensure_config_handler(Module, ConfigPath) ->
|
||||||
|
#{handlers := Handlers} = sys:get_state(emqx_config_handler),
|
||||||
|
case emqx_utils_maps:deep_get(ConfigPath, Handlers, not_found) of
|
||||||
|
#{{mod} := Module} -> ok;
|
||||||
|
_NotFound -> error({config_handler_missing, ConfigPath, Module})
|
||||||
|
end,
|
||||||
|
ok.
|
||||||
|
|
||||||
app_conf_file(emqx_conf) -> "emqx.conf.all";
|
app_conf_file(emqx_conf) -> "emqx.conf.all";
|
||||||
app_conf_file(App) -> atom_to_list(App) ++ ".conf".
|
app_conf_file(App) -> atom_to_list(App) ++ ".conf".
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue