Browse Source

Add test helper to send data across network.

Roberto Ostinelli 5 years ago
parent
commit
26fed1ef00
3 changed files with 58 additions and 16 deletions
  1. 4 2
      Makefile
  2. 52 0
      test/syn_test_event_manager.erl
  3. 2 14
      test/syn_test_suite_helper.erl

+ 4 - 2
Makefile

@@ -34,10 +34,12 @@ ifdef suite
 	@# 'make test suite=syn_registry_SUITE'
 	ct_run -dir $(PROJECT_DIR)/test -logdir $(PROJECT_DIR)/test/results \
 	-suite $(suite) \
-	-pa `rebar3 as test path`
+	-pa `rebar3 as test path` \
+	-event_handler syn_test_event_manager -pa $(PROJECT_DIR)/test
 else
 	ct_run -dir $(PROJECT_DIR)/test -logdir $(PROJECT_DIR)/test/results \
-	-pa `rebar3 as test path`
+	-pa `rebar3 as test path` \
+	-event_handler syn_test_event_manager -pa $(PROJECT_DIR)/test
 endif
 
 bench: compile_test

+ 52 - 0
test/syn_test_event_manager.erl

@@ -0,0 +1,52 @@
+%% ==========================================================================================================
+%% Syn - A global Process Registry and Process Group manager.
+%%
+%% The MIT License (MIT)
+%%
+%% Copyright (c) 2015 Roberto Ostinelli <roberto@ostinelli.net> and Neato Robotics, Inc.
+%%
+%% 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(syn_test_event_manager).
+-behaviour(gen_event).
+
+-export([init/1, handle_event/2, handle_call/2, handle_info/2, code_change/3,
+    terminate/2]).
+
+init([]) ->
+    {ok, []}.
+
+handle_event({event, syn_test, _, Message}, State) ->
+    ct:pal("~p", [Message]),
+    {ok, State};
+
+handle_event(_, State) ->
+    {ok, State}.
+
+handle_call(_, State) ->
+    {ok, ok, State}.
+
+handle_info(_, State) ->
+    {ok, State}.
+
+code_change(_OldVsn, State, _Extra) ->
+    {ok, State}.
+
+terminate(_Reason, _State) ->
+    ok.

+ 2 - 14
test/syn_test_suite_helper.erl

@@ -32,7 +32,7 @@
 -export([start_process/0, start_process/1, start_process/2]).
 -export([kill_process/1]).
 -export([use_custom_handler/0]).
--export([start_collecting_debug_data/0, send_debug_data/1, print_debug_data/0]).
+-export([send_debug_data/1]).
 
 %% internal
 -export([process_main/0]).
@@ -84,20 +84,8 @@ kill_process(Pid) ->
 use_custom_handler() ->
     application:set_env(syn, event_handler, syn_test_event_handler).
 
-start_collecting_debug_data() ->
-    global:register_name(syn_debug_process, self()).
-
 send_debug_data(Message) ->
-    global:send(syn_debug_process, Message).
-
-print_debug_data() ->
-    receive
-        Any ->
-            ct:pal("~p", [Any]),
-            print_debug_data()
-    after 1000 ->
-        ok
-    end.
+    ct:notify(syn_test, Message).
 
 %% ===================================================================
 %% Internal