diff --git a/test/emqttd_keepalive_tests.erl b/test/emqttd_keepalive_tests.erl new file mode 100644 index 000000000..96f84450a --- /dev/null +++ b/test/emqttd_keepalive_tests.erl @@ -0,0 +1,44 @@ + +%%%----------------------------------------------------------------------------- +%%% @Copyright (C) 2012-2015, Feng Lee +%%% +%%% Permission is hereby granted, free of charge, to any person obtaining a copy +%%% of this software and associated documentation files (the "Software"), to deal +%%% in the Software without restriction, including without limitation the rights +%%% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +%%% copies of the Software, and to permit persons to whom the Software is +%%% furnished to do so, subject to the following conditions: +%%% +%%% The above copyright notice and this permission notice shall be included in all +%%% copies or substantial portions of the Software. +%%% +%%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +%%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +%%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +%%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +%%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +%%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +%%% SOFTWARE. +%%%----------------------------------------------------------------------------- +-module(emqttd_keepalive_tests). + +-ifdef(TEST). + +-include_lib("eunit/include/eunit.hrl"). + +keepalive_test() -> + KA = emqttd_keepalive:start(fun() -> {ok, 1} end, 1, {keepalive, timeout}), + ?assertEqual([resumed, timeout], lists:reverse(loop(KA, []))). + +loop(KA, Acc) -> + receive + {keepalive, timeout} -> + case emqttd_keepalive:check(KA) of + {ok, KA1} -> loop(KA1, [resumed | Acc]); + {error, timeout} -> [timeout | Acc] + end + after 4000 -> + Acc + end. + +-endif.