emqttd_keepalive_tests.erl 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. %%--------------------------------------------------------------------
  2. %% Copyright (c) 2012-2016 Feng Lee <feng@emqtt.io>.
  3. %%
  4. %% Licensed under the Apache License, Version 2.0 (the "License");
  5. %% you may not use this file except in compliance with the License.
  6. %% You may obtain a copy of the License at
  7. %%
  8. %% http://www.apache.org/licenses/LICENSE-2.0
  9. %%
  10. %% Unless required by applicable law or agreed to in writing, software
  11. %% distributed under the License is distributed on an "AS IS" BASIS,
  12. %% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. %% See the License for the specific language governing permissions and
  14. %% limitations under the License.
  15. %%--------------------------------------------------------------------
  16. -module(emqttd_keepalive_tests).
  17. -ifdef(TEST).
  18. -include_lib("eunit/include/eunit.hrl").
  19. keepalive_test() ->
  20. KA = emqttd_keepalive:start(fun() -> {ok, 1} end, 1, {keepalive, timeout}),
  21. ?assertEqual([resumed, timeout], lists:reverse(loop(KA, []))).
  22. loop(KA, Acc) ->
  23. receive
  24. {keepalive, timeout} ->
  25. case emqttd_keepalive:check(KA) of
  26. {ok, KA1} -> loop(KA1, [resumed | Acc]);
  27. {error, timeout} -> [timeout | Acc]
  28. end
  29. after 4000 ->
  30. Acc
  31. end.
  32. -endif.