|
@@ -321,7 +321,7 @@ test_stepdown_session(Action, Reason) ->
|
|
|
discard ->
|
|
discard ->
|
|
|
emqx_cm:discard_session(ClientId);
|
|
emqx_cm:discard_session(ClientId);
|
|
|
{takeover, _} ->
|
|
{takeover, _} ->
|
|
|
- none = emqx_cm:takeover_channel_session(ClientId, fun ident/1),
|
|
|
|
|
|
|
+ none = emqx_cm:takeover_session_begin(ClientId),
|
|
|
ok
|
|
ok
|
|
|
end,
|
|
end,
|
|
|
case Reason =:= timeout orelse Reason =:= noproc of
|
|
case Reason =:= timeout orelse Reason =:= noproc of
|
|
@@ -381,10 +381,11 @@ t_discard_session_race(_) ->
|
|
|
|
|
|
|
|
t_takeover_session(_) ->
|
|
t_takeover_session(_) ->
|
|
|
#{conninfo := ConnInfo} = ?ChanInfo,
|
|
#{conninfo := ConnInfo} = ?ChanInfo,
|
|
|
- none = emqx_cm:takeover_channel_session(<<"clientid">>, fun ident/1),
|
|
|
|
|
|
|
+ ClientId = <<"clientid">>,
|
|
|
|
|
+ none = emqx_cm:takeover_session_begin(ClientId),
|
|
|
Parent = self(),
|
|
Parent = self(),
|
|
|
- erlang:spawn_link(fun() ->
|
|
|
|
|
- ok = emqx_cm:register_channel(<<"clientid">>, self(), ConnInfo),
|
|
|
|
|
|
|
+ ChanPid = erlang:spawn_link(fun() ->
|
|
|
|
|
+ ok = emqx_cm:register_channel(ClientId, self(), ConnInfo),
|
|
|
Parent ! registered,
|
|
Parent ! registered,
|
|
|
receive
|
|
receive
|
|
|
{'$gen_call', From1, {takeover, 'begin'}} ->
|
|
{'$gen_call', From1, {takeover, 'begin'}} ->
|
|
@@ -398,16 +399,17 @@ t_takeover_session(_) ->
|
|
|
receive
|
|
receive
|
|
|
registered -> ok
|
|
registered -> ok
|
|
|
end,
|
|
end,
|
|
|
- {ok, test, []} = emqx_cm:takeover_channel_session(<<"clientid">>, fun ident/1),
|
|
|
|
|
- emqx_cm:unregister_channel(<<"clientid">>).
|
|
|
|
|
|
|
+ {ok, test, State = {emqx_connection, ChanPid}} = emqx_cm:takeover_session_begin(ClientId),
|
|
|
|
|
+ {ok, []} = emqx_cm:takeover_session_end(State),
|
|
|
|
|
+ emqx_cm:unregister_channel(ClientId).
|
|
|
|
|
|
|
|
t_takeover_session_process_gone(_) ->
|
|
t_takeover_session_process_gone(_) ->
|
|
|
#{conninfo := ConnInfo} = ?ChanInfo,
|
|
#{conninfo := ConnInfo} = ?ChanInfo,
|
|
|
ClientIDTcp = <<"clientidTCP">>,
|
|
ClientIDTcp = <<"clientidTCP">>,
|
|
|
ClientIDWs = <<"clientidWs">>,
|
|
ClientIDWs = <<"clientidWs">>,
|
|
|
ClientIDRpc = <<"clientidRPC">>,
|
|
ClientIDRpc = <<"clientidRPC">>,
|
|
|
- none = emqx_cm:takeover_channel_session(ClientIDTcp, fun ident/1),
|
|
|
|
|
- none = emqx_cm:takeover_channel_session(ClientIDWs, fun ident/1),
|
|
|
|
|
|
|
+ none = emqx_cm:takeover_session_begin(ClientIDTcp),
|
|
|
|
|
+ none = emqx_cm:takeover_session_begin(ClientIDWs),
|
|
|
meck:new(emqx_connection, [passthrough, no_history]),
|
|
meck:new(emqx_connection, [passthrough, no_history]),
|
|
|
meck:expect(
|
|
meck:expect(
|
|
|
emqx_connection,
|
|
emqx_connection,
|
|
@@ -420,7 +422,7 @@ t_takeover_session_process_gone(_) ->
|
|
|
end
|
|
end
|
|
|
),
|
|
),
|
|
|
ok = emqx_cm:register_channel(ClientIDTcp, self(), ConnInfo),
|
|
ok = emqx_cm:register_channel(ClientIDTcp, self(), ConnInfo),
|
|
|
- none = emqx_cm:takeover_channel_session(ClientIDTcp, fun ident/1),
|
|
|
|
|
|
|
+ none = emqx_cm:takeover_session_begin(ClientIDTcp),
|
|
|
meck:expect(
|
|
meck:expect(
|
|
|
emqx_connection,
|
|
emqx_connection,
|
|
|
call,
|
|
call,
|
|
@@ -432,7 +434,7 @@ t_takeover_session_process_gone(_) ->
|
|
|
end
|
|
end
|
|
|
),
|
|
),
|
|
|
ok = emqx_cm:register_channel(ClientIDWs, self(), ConnInfo),
|
|
ok = emqx_cm:register_channel(ClientIDWs, self(), ConnInfo),
|
|
|
- none = emqx_cm:takeover_channel_session(ClientIDWs, fun ident/1),
|
|
|
|
|
|
|
+ none = emqx_cm:takeover_session_begin(ClientIDWs),
|
|
|
meck:expect(
|
|
meck:expect(
|
|
|
emqx_connection,
|
|
emqx_connection,
|
|
|
call,
|
|
call,
|
|
@@ -444,7 +446,7 @@ t_takeover_session_process_gone(_) ->
|
|
|
end
|
|
end
|
|
|
),
|
|
),
|
|
|
ok = emqx_cm:register_channel(ClientIDRpc, self(), ConnInfo),
|
|
ok = emqx_cm:register_channel(ClientIDRpc, self(), ConnInfo),
|
|
|
- none = emqx_cm:takeover_channel_session(ClientIDRpc, fun ident/1),
|
|
|
|
|
|
|
+ none = emqx_cm:takeover_session_begin(ClientIDRpc),
|
|
|
emqx_cm:unregister_channel(ClientIDTcp),
|
|
emqx_cm:unregister_channel(ClientIDTcp),
|
|
|
emqx_cm:unregister_channel(ClientIDWs),
|
|
emqx_cm:unregister_channel(ClientIDWs),
|
|
|
emqx_cm:unregister_channel(ClientIDRpc),
|
|
emqx_cm:unregister_channel(ClientIDRpc),
|
|
@@ -463,8 +465,3 @@ t_message(_) ->
|
|
|
?CM ! testing,
|
|
?CM ! testing,
|
|
|
gen_server:cast(?CM, testing),
|
|
gen_server:cast(?CM, testing),
|
|
|
gen_server:call(?CM, testing).
|
|
gen_server:call(?CM, testing).
|
|
|
-
|
|
|
|
|
-%%
|
|
|
|
|
-
|
|
|
|
|
-ident(V) ->
|
|
|
|
|
- V.
|
|
|