Add a test case to cover timeout message flush in emqx_misc
This commit is contained in:
parent
25b61afe0d
commit
f75a624197
|
@ -36,14 +36,13 @@ start_timer(Interval, Dest, Msg) ->
|
||||||
erlang:start_timer(Interval, Dest, Msg).
|
erlang:start_timer(Interval, Dest, Msg).
|
||||||
|
|
||||||
-spec(cancel_timer(undefined | reference()) -> ok).
|
-spec(cancel_timer(undefined | reference()) -> ok).
|
||||||
cancel_timer(undefined) ->
|
cancel_timer(Timer) when is_reference(Timer) ->
|
||||||
ok;
|
case erlang:cancel_timer(Timer) of
|
||||||
cancel_timer(Timer) ->
|
|
||||||
case catch erlang:cancel_timer(Timer) of
|
|
||||||
false ->
|
false ->
|
||||||
receive {timeout, Timer, _} -> ok after 0 -> ok end;
|
receive {timeout, Timer, _} -> ok after 0 -> ok end;
|
||||||
_ -> ok
|
_ -> ok
|
||||||
end.
|
end;
|
||||||
|
cancel_timer(_) -> ok.
|
||||||
|
|
||||||
-spec(proc_name(atom(), pos_integer()) -> atom()).
|
-spec(proc_name(atom(), pos_integer()) -> atom()).
|
||||||
proc_name(Mod, Id) ->
|
proc_name(Mod, Id) ->
|
||||||
|
|
|
@ -15,6 +15,13 @@
|
||||||
-module(emqx_misc_tests).
|
-module(emqx_misc_tests).
|
||||||
-include_lib("eunit/include/eunit.hrl").
|
-include_lib("eunit/include/eunit.hrl").
|
||||||
|
|
||||||
|
timer_cancel_flush_test() ->
|
||||||
|
Timer = emqx_misc:start_timer(0, foo),
|
||||||
|
ok = emqx_misc:cancel_timer(Timer),
|
||||||
|
receive {timeout, Timer, foo} -> error(unexpected)
|
||||||
|
after 0 -> ok
|
||||||
|
end.
|
||||||
|
|
||||||
shutdown_disabled_test() ->
|
shutdown_disabled_test() ->
|
||||||
with_env(
|
with_env(
|
||||||
[{conn_max_msg_queue_len, 0},
|
[{conn_max_msg_queue_len, 0},
|
||||||
|
|
Loading…
Reference in New Issue