test: use no_link in init for mecks

This commit is contained in:
Stefan Strigler 2023-10-12 16:03:52 +02:00 committed by Zaiming (Stone) Shi
parent 671b5306cd
commit 291d54eef0
1 changed files with 3 additions and 26 deletions

View File

@ -179,7 +179,7 @@ init_per_testcase(_TestCase, Config) ->
undefined -> undefined ->
init_mocks(); init_mocks();
Nodes -> Nodes ->
[erpc:call(Node, ?MODULE, inject_mocks, []) || Node <- Nodes] [erpc:call(Node, ?MODULE, init_mocks, []) || Node <- Nodes]
end, end,
Config. Config.
@ -195,34 +195,11 @@ end_per_testcase(_TestCase, Config) ->
ok = erpc:call(Node, fun clear_resources/0), ok = erpc:call(Node, fun clear_resources/0),
ok. ok.
loop(Mocks) ->
receive
{get_mocks, Pid} ->
Pid ! {mocks, Mocks},
loop(Mocks);
stop_mocks ->
meck:unload()
end.
inject_mocks() ->
Pid = spawn(fun() ->
Mocks = ?MODULE:init_mocks(),
loop(Mocks)
end),
%% make sure mocks are ready before we leave
Pid ! {get_mocks, self()},
receive
{mocks, _Mocks} ->
%% ct:pal("received mocks! ~p", [_Mocks]),
ok
end,
Pid.
-define(CONNECTOR_IMPL, dummy_connector_impl). -define(CONNECTOR_IMPL, dummy_connector_impl).
init_mocks() -> init_mocks() ->
meck:new(emqx_connector_ee_schema, [passthrough]), meck:new(emqx_connector_ee_schema, [passthrough, no_link]),
meck:expect(emqx_connector_ee_schema, resource_type, 1, ?CONNECTOR_IMPL), meck:expect(emqx_connector_ee_schema, resource_type, 1, ?CONNECTOR_IMPL),
meck:new(?CONNECTOR_IMPL, [non_strict]), meck:new(?CONNECTOR_IMPL, [non_strict, no_link]),
meck:expect(?CONNECTOR_IMPL, callback_mode, 0, async_if_possible), meck:expect(?CONNECTOR_IMPL, callback_mode, 0, async_if_possible),
meck:expect( meck:expect(
?CONNECTOR_IMPL, ?CONNECTOR_IMPL,