From ba0d0533bf8aab7938796ddca3987fc5ed776cb7 Mon Sep 17 00:00:00 2001 From: Peter Lemenkov Date: Wed, 14 Dec 2016 16:11:36 +0100 Subject: Fix another one typo Signed-off-by: Peter Lemenkov --- c_src/sd_notify.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/c_src/sd_notify.c b/c_src/sd_notify.c index 9edf737..19425b2 100644 --- a/c_src/sd_notify.c +++ b/c_src/sd_notify.c @@ -45,7 +45,7 @@ static ERL_NIF_TERM sd_pid_notify_with_fds_nif(ErlNifEnv* env, int argc, const E enif_get_string(env, argv[2], state, length, ERL_NIF_LATIN1); enif_get_list_length(env, argv[3], &length); - int* fds = (int*)enif_alloc(++length * sizeof(int)); + int* fds = (int*)enif_alloc(length * sizeof(int)); ERL_NIF_TERM list = argv[3]; int i = 0; while(enif_get_list_cell(env, list, &head, &tail)) { -- cgit v1.2.1 From af906671f4066a2e13cb88171cd03fb953443acd Mon Sep 17 00:00:00 2001 From: Peter Lemenkov Date: Wed, 14 Dec 2016 16:14:25 +0100 Subject: Remove whitespace Signed-off-by: Peter Lemenkov --- c_src/sd_notify.c | 1 - 1 file changed, 1 deletion(-) diff --git a/c_src/sd_notify.c b/c_src/sd_notify.c index 19425b2..5c21be4 100644 --- a/c_src/sd_notify.c +++ b/c_src/sd_notify.c @@ -61,7 +61,6 @@ static ERL_NIF_TERM sd_pid_notify_with_fds_nif(ErlNifEnv* env, int argc, const E return enif_make_int(env, result); } - static ErlNifFunc nif_funcs[] = { {"sd_pid_notify_with_fds", 4, sd_pid_notify_with_fds_nif}, -- cgit v1.2.1 From e78847ee9bceef4e5e02cf5ea97a5466eb148dcf Mon Sep 17 00:00:00 2001 From: Peter Lemenkov Date: Wed, 14 Dec 2016 16:20:43 +0100 Subject: Remove bogus test stub Signed-off-by: Peter Lemenkov --- src/sd_notify.erl | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/src/sd_notify.erl b/src/sd_notify.erl index 504c25f..c5201da 100644 --- a/src/sd_notify.erl +++ b/src/sd_notify.erl @@ -36,10 +36,6 @@ nif_stub_error(Line) -> erlang:nif_error({nif_not_loaded,module,?MODULE,line,Line}). --ifdef(TEST). --include_lib("eunit/include/eunit.hrl"). --endif. - init() -> PrivDir = case code:priv_dir(?MODULE) of {error, bad_name} -> @@ -65,16 +61,3 @@ sd_pid_notifyf(Pid, UnsetEnv, Format, Data) -> sd_pid_notify_with_fds(_, _, _, _) -> ?nif_stub. - -%% =================================================================== -%% EUnit tests -%% =================================================================== --ifdef(TEST). - -sd_notify_test() -> - ?assertEqual(ok, ok). - -sd_notifyf_test() -> - ?assertEqual(ok, ok). - --endif. -- cgit v1.2.1 From 4f2d557f4bb1ad4f5b7f85f7d0368a92cf7438f5 Mon Sep 17 00:00:00 2001 From: Peter Lemenkov Date: Wed, 14 Dec 2016 17:17:51 +0100 Subject: 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 --- test/sd_notify_test.erl | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 test/sd_notify_test.erl 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 + } + + ] + + }. -- cgit v1.2.1 From 088ed86ed8b46ca37d3df452daed78b808531199 Mon Sep 17 00:00:00 2001 From: Peter Lemenkov Date: Wed, 14 Dec 2016 17:19:13 +0100 Subject: Make alias - make check -> make test Signed-off-by: Peter Lemenkov --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index 476f80e..7a2c6ec 100644 --- a/Makefile +++ b/Makefile @@ -7,6 +7,7 @@ all: compile compile: $(REBAR) compile $(REBAR_FLAGS) +check: test test: compile $(REBAR) eunit $(REBAR_FLAGS) -- cgit v1.2.1 From e17c3f87375a17760578de581fcc961d2ae609ac Mon Sep 17 00:00:00 2001 From: Peter Lemenkov Date: Wed, 14 Dec 2016 17:48:00 +0100 Subject: Run tests only if Erlang ver. is 19 Signed-off-by: Peter Lemenkov --- test/sd_notify_test.erl | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/test/sd_notify_test.erl b/test/sd_notify_test.erl index 09d74ee..32a8ac6 100644 --- a/test/sd_notify_test.erl +++ b/test/sd_notify_test.erl @@ -2,7 +2,11 @@ -include_lib("eunit/include/eunit.hrl"). + sd_notify_test_() -> + sd_notify_test_local(erlang:system_info(otp_release)). + +sd_notify_test_local("19") -> {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())), @@ -24,4 +28,6 @@ sd_notify_test_() -> ] - }. + }; +sd_notify_test_local(_) -> + []. -- cgit v1.2.1 From 8f657b351613132de1e1c67282d6c339340fe363 Mon Sep 17 00:00:00 2001 From: Peter Lemenkov Date: Wed, 14 Dec 2016 17:55:59 +0100 Subject: Enable testing Signed-off-by: Peter Lemenkov --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index b802b21..1444699 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,4 +13,4 @@ before_install: - docker images script: -- docker run -v $TRAVIS_BUILD_DIR:/home/sd/ build_ubuntu /bin/sh -c "cd /home/sd/; make all" +- docker run -v $TRAVIS_BUILD_DIR:/home/sd/ build_ubuntu /bin/sh -c "cd /home/sd/; make all; make test" -- cgit v1.2.1 From 31f3066ef8bd4083cdd304f159176d888b9ba7c1 Mon Sep 17 00:00:00 2001 From: Peter Lemenkov Date: Wed, 14 Dec 2016 17:58:01 +0100 Subject: List available Erlang versions Signed-off-by: Peter Lemenkov --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 1444699..c9a0857 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,6 +9,7 @@ services: - docker before_install: +- kerl list installations - docker build -t build_ubuntu https://raw.githubusercontent.com/systemd/erlang-sd_notify/master/docker/ubuntu_18_3/Dockerfile - docker images -- cgit v1.2.1 From 2b191e8d59bf619c80e90ce7e91a3a62d3fbe1a2 Mon Sep 17 00:00:00 2001 From: Peter Lemenkov Date: Wed, 14 Dec 2016 18:06:41 +0100 Subject: Add more Erlang versions Signed-off-by: Peter Lemenkov --- .travis.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index c9a0857..7e37776 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,7 +3,13 @@ sudo: required language: erlang otp_release: - - 18.2.1 +- 18.0 +- 18.1 +- 18.2 +- 18.2.1 +- 18.3 +- 19.0 +- 19.1 services: - docker -- cgit v1.2.1