diff options
Diffstat (limited to 'test/sd_notify_test.erl')
-rw-r--r-- | test/sd_notify_test.erl | 61 |
1 files changed, 52 insertions, 9 deletions
diff --git a/test/sd_notify_test.erl b/test/sd_notify_test.erl index 4ae437a..59df682 100644 --- a/test/sd_notify_test.erl +++ b/test/sd_notify_test.erl @@ -2,11 +2,7 @@ -include_lib("eunit/include/eunit.hrl"). - -sd_notify_test_() -> - sd_notify_test_local(erlang:system_info(otp_release)). - -sd_notify_test_local("19") -> +sd_notify_basic_test_() -> {ok, CWD} = file:get_cwd(), FakeNotifyUnixSockName = CWD ++ "/fake-sock-" ++ integer_to_list(erlang:phash2(make_ref())), {ok, FakeNotifyUnixSock} = gen_udp:open(0, [{ifaddr, {local, FakeNotifyUnixSockName}}, {active, false}, list]), @@ -20,7 +16,7 @@ sd_notify_test_local("19") -> "Try sending message", fun() -> TestMessage = integer_to_list(erlang:phash2(make_ref())), - 1 = sd_notify:sd_pid_notify_with_fds(0, 0, TestMessage, []), + ok = sd_notify:sd_pid_notify_with_fds(0, 0, TestMessage, []), {ok, {_Address, _Port, Packet}} = gen_udp:recv(FakeNotifyUnixSock, length(TestMessage), 1000), ?assertEqual(TestMessage, Packet) end @@ -28,6 +24,53 @@ sd_notify_test_local("19") -> ] - }; -sd_notify_test_local(_) -> - []. + }. + +sd_notify_unsetenv_test_() -> + {ok, CWD} = file:get_cwd(), + FakeNotifyUnixSockName = CWD ++ "/fake-sock-" ++ integer_to_list(erlang:phash2(make_ref())), + {ok, FakeNotifyUnixSock} = gen_udp:open(0, [{ifaddr, {local, FakeNotifyUnixSockName}}, {active, false}, list]), + os:putenv("NOTIFY_SOCKET", FakeNotifyUnixSockName), + + {setup, + fun() -> ok end, + fun(_) -> ok = gen_udp:close(FakeNotifyUnixSock), ok = file:delete(FakeNotifyUnixSockName) end, + [ + { + "Try sending message", + fun() -> + TestMessage = integer_to_list(erlang:phash2(make_ref())), + ok = sd_notify:sd_pid_notify_with_fds(0, true, TestMessage, []), + {ok, {_Address, _Port, _Packet}} = gen_udp:recv(FakeNotifyUnixSock, length(TestMessage), 1000), + Ret = os:getenv("NOTIFY_SOCKET"), + ?assertEqual(Ret, false) + end + } + + ] + + }. + +sd_notify_watchdog_test_() -> + {ok, CWD} = file:get_cwd(), + FakeNotifyUnixSockName = CWD ++ "/fake-sock-" ++ integer_to_list(erlang:phash2(make_ref())), + {ok, FakeNotifyUnixSock} = gen_udp:open(0, [{ifaddr, {local, FakeNotifyUnixSockName}}, {active, false}, list]), + os:putenv("NOTIFY_SOCKET", FakeNotifyUnixSockName), + + {setup, + fun() -> ok end, + fun(_) -> ok = gen_udp:close(FakeNotifyUnixSock), ok = file:delete(FakeNotifyUnixSockName) end, + [ + { + "Try sending message", + fun() -> + os:putenv("WATCHDOG_USEC", "500000"), + sd_notify:start_link(), + {ok, {_Address, _Port, Packet}} = gen_udp:recv(FakeNotifyUnixSock, length("WATCHDOG=1"), 1000), + ?assertEqual("WATCHDOG=1", Packet) + end + } + + ] + + }. |