From f1a2f354c4aa79a50511e6adb8ffb67fe4ae8018 Mon Sep 17 00:00:00 2001 From: "Zaiming (Stone) Shi" Date: Tue, 4 Oct 2022 12:42:40 +0200 Subject: [PATCH] test: ensure module loaded for ct-slave node before starting apps --- test/emqx_node_helpers.erl | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/test/emqx_node_helpers.erl b/test/emqx_node_helpers.erl index ad530b3d7..af7093dd7 100644 --- a/test/emqx_node_helpers.erl +++ b/test/emqx_node_helpers.erl @@ -40,7 +40,9 @@ start_slave(Name, Opts) -> {ok, _} -> ok; {error, started_not_connected, _} -> - ok + ok; + Other -> + throw(Other) end, pong = net_adm:ping(Node), setup_node(Node, Opts), @@ -92,7 +94,11 @@ setup_node(Node, #{} = Opts) -> end, EnvHandler = maps:get(env_handler, Opts, DefaultEnvHandler), - [ok = rpc:call(Node, application, load, [App]) || App <- [gen_rpc, emqx]], + %% apps need to be loaded before starting for ekka to find and create mnesia tables + LoadApps = lists:usort([gen_rcp, emqx] ++ ?SLAVE_START_APPS), + lists:foreach(fun(App) -> + rpc:call(Node, application, load, [App]) + end, LoadApps), ok = rpc:call(Node, emqx_ct_helpers, start_apps, [StartApps, EnvHandler]), case maps:get(no_join, Opts, false) of