diff --git a/apps/emqx/test/emqx_common_test_helpers.erl b/apps/emqx/test/emqx_common_test_helpers.erl index f85ed2599..7aaf93c99 100644 --- a/apps/emqx/test/emqx_common_test_helpers.erl +++ b/apps/emqx/test/emqx_common_test_helpers.erl @@ -756,8 +756,8 @@ start_slave(Name, Opts) when is_map(Opts) -> throw(Other) end, pong = net_adm:ping(Node), - setup_node(Node, Opts), ok = snabbkaffe:forward_trace(Node), + setup_node(Node, Opts), Node. %% Node stopping diff --git a/apps/emqx_bridge/src/emqx_bridge_app.erl b/apps/emqx_bridge/src/emqx_bridge_app.erl index daae15a17..e59259c3e 100644 --- a/apps/emqx_bridge/src/emqx_bridge_app.erl +++ b/apps/emqx_bridge/src/emqx_bridge_app.erl @@ -17,6 +17,8 @@ -behaviour(application). +-include_lib("snabbkaffe/include/snabbkaffe.hrl"). + -export([start/2, stop/1]). -export([ @@ -34,6 +36,7 @@ start(_StartType, _StartArgs) -> ok = emqx_bridge:load_hook(), ok = emqx_config_handler:add_handler(?LEAF_NODE_HDLR_PATH, ?MODULE), ok = emqx_config_handler:add_handler(?TOP_LELVE_HDLR_PATH, emqx_bridge), + ?tp(emqx_bridge_app_started, #{}), {ok, Sup}. stop(_State) -> diff --git a/apps/emqx_bridge_pulsar/test/emqx_bridge_pulsar_impl_producer_SUITE.erl b/apps/emqx_bridge_pulsar/test/emqx_bridge_pulsar_impl_producer_SUITE.erl index a5c04160c..9dc2f05d6 100644 --- a/apps/emqx_bridge_pulsar/test/emqx_bridge_pulsar_impl_producer_SUITE.erl +++ b/apps/emqx_bridge_pulsar/test/emqx_bridge_pulsar_impl_producer_SUITE.erl @@ -1064,9 +1064,17 @@ t_cluster(Config) -> ?check_trace( begin Nodes = [N1, N2 | _] = start_cluster(Cluster), + %% wait until bridge app supervisor is up; by that point, + %% `emqx_config_handler:add_handler' has been called and the node should be + %% ready to create bridges. + NumNodes = length(Nodes), + {ok, _} = snabbkaffe:block_until( + ?match_n_events(NumNodes, #{?snk_kind := emqx_bridge_app_started}), + 15_000 + ), {ok, SRef0} = snabbkaffe:subscribe( ?match_event(#{?snk_kind := pulsar_producer_bridge_started}), - length(Nodes), + NumNodes, 15_000 ), {ok, _} = erpc:call(N1, fun() -> create_bridge(Config) end),