diff options
author | Peter Lemenkov <lemenkov@redhat.com> | 2016-12-14 17:17:51 +0100 |
---|---|---|
committer | Peter Lemenkov <lemenkov@redhat.com> | 2016-12-14 17:17:55 +0100 |
commit | 4f2d557f4bb1ad4f5b7f85f7d0368a92cf7438f5 (patch) | |
tree | 24658c505c604f47cbcf9d91de230d07beba4bf9 | |
parent | e78847ee9bceef4e5e02cf5ea97a5466eb148dcf (diff) | |
download | erlang-sd_notify-4f2d557f4bb1ad4f5b7f85f7d0368a92cf7438f5.tar.gz |
Add basic test
This requires Erlang 19 because it uses local sockets during tests.
Still main code is compatible with any previous Erlang versions where
NIF API is available.
Signed-off-by: Peter Lemenkov <lemenkov@redhat.com>
-rw-r--r-- | test/sd_notify_test.erl | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/test/sd_notify_test.erl b/test/sd_notify_test.erl new file mode 100644 index 0000000..09d74ee --- /dev/null +++ b/test/sd_notify_test.erl @@ -0,0 +1,27 @@ +-module(sd_notify_test). + +-include_lib("eunit/include/eunit.hrl"). + +sd_notify_test_() -> + {ok, CWD} = file:get_cwd(), + FakeNotifyUnixSockName = CWD ++ "/fake-notify-udp-sock-" ++ integer_to_list(erlang:phash2(make_ref())), + TestMessage = 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() -> + sd_notify:sd_pid_notify_with_fds(0, 0, TestMessage, [1, 2, 3]), + {ok, {_Address, _Port, Packet}} = gen_udp:recv(FakeNotifyUnixSock, length(TestMessage), 1000), + ?assertEqual(TestMessage, Packet) + end + } + + ] + + }. |