summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Lemenkov <lemenkov@redhat.com>2016-12-14 17:17:51 +0100
committerPeter Lemenkov <lemenkov@redhat.com>2016-12-14 17:17:55 +0100
commit4f2d557f4bb1ad4f5b7f85f7d0368a92cf7438f5 (patch)
tree24658c505c604f47cbcf9d91de230d07beba4bf9
parente78847ee9bceef4e5e02cf5ea97a5466eb148dcf (diff)
downloaderlang-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.erl27
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
+ }
+
+ ]
+
+ }.