test: make testcases not rely on timer:sleep

This commit is contained in:
Tobias Lindahl 2021-11-16 13:32:38 +01:00
parent 05f3bc8c90
commit c9b86a8375
1 changed files with 3 additions and 1 deletions

View File

@ -300,14 +300,16 @@ t_discard_session_race(_) ->
t_takeover_session(_) -> t_takeover_session(_) ->
#{conninfo := ConnInfo} = ?ChanInfo, #{conninfo := ConnInfo} = ?ChanInfo,
none = emqx_cm:takeover_session(<<"clientid">>), none = emqx_cm:takeover_session(<<"clientid">>),
Parent = self(),
erlang:spawn_link(fun() -> erlang:spawn_link(fun() ->
ok = emqx_cm:register_channel(<<"clientid">>, self(), ConnInfo), ok = emqx_cm:register_channel(<<"clientid">>, self(), ConnInfo),
Parent ! registered,
receive receive
{'$gen_call', From, {takeover, 'begin'}} -> {'$gen_call', From, {takeover, 'begin'}} ->
gen_server:reply(From, test), ok gen_server:reply(From, test), ok
end end
end), end),
timer:sleep(100), receive registered -> ok end,
{living, emqx_connection, _, test} = emqx_cm:takeover_session(<<"clientid">>), {living, emqx_connection, _, test} = emqx_cm:takeover_session(<<"clientid">>),
emqx_cm:unregister_channel(<<"clientid">>). emqx_cm:unregister_channel(<<"clientid">>).