File 2235-stdlib-Test-gen_event-options.patch of Package erlang

From e261e4b4a025142f24c1f7a856493df6e62954f4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn-Egil=20Dahlberg?= <egil@erlang.org>
Date: Tue, 20 Dec 2016 17:14:02 +0100
Subject: [PATCH 5/6] stdlib: Test gen_event options

---
 lib/stdlib/test/gen_event_SUITE.erl | 84 ++++++++++++++++++++++++++++++++++++-
 1 file changed, 82 insertions(+), 2 deletions(-)

diff --git a/lib/stdlib/test/gen_event_SUITE.erl b/lib/stdlib/test/gen_event_SUITE.erl
index 37ba4523f..9a7400c84 100644
--- a/lib/stdlib/test/gen_event_SUITE.erl
+++ b/lib/stdlib/test/gen_event_SUITE.erl
@@ -27,14 +27,16 @@
 	 delete_handler/1, swap_handler/1, swap_sup_handler/1,
 	 notify/1, sync_notify/1, call/1, info/1, hibernate/1,
 	 call_format_status/1, call_format_status_anon/1,
-         error_format_status/1, get_state/1, replace_state/1]).
+         error_format_status/1, get_state/1, replace_state/1,
+         start_opt/1]).
 
 suite() -> [{ct_hooks,[ts_install_cth]}].
 
 all() ->
     [start, {group, test_all}, hibernate,
      call_format_status, call_format_status_anon, error_format_status,
-     get_state, replace_state].
+     get_state, replace_state,
+     start_opt].
 
 groups() ->
     [{test_all, [],
@@ -125,6 +127,84 @@ start(Config) when is_list(Config) ->
     process_flag(trap_exit, OldFl),
     ok.
 
+start_opt(Config) when is_list(Config) ->
+    OldFl = process_flag(trap_exit, true),
+
+    dummy_via:reset(),
+
+    {ok, Pid0} = gen_event:start([]), %anonymous
+    [] = gen_event:which_handlers(Pid0),
+    ok = gen_event:stop(Pid0),
+
+    {ok, Pid1} = gen_event:start_link([]), %anonymous
+    [] = gen_event:which_handlers(Pid1),
+    ok = gen_event:stop(Pid1),
+
+    {ok, Pid2} = gen_event:start(?LMGR, []),
+    [] = gen_event:which_handlers(my_dummy_name),
+    [] = gen_event:which_handlers(Pid2),
+    ok = gen_event:stop(my_dummy_name),
+
+    {ok, Pid3} = gen_event:start_link(?LMGR, []),
+    [] = gen_event:which_handlers(my_dummy_name),
+    [] = gen_event:which_handlers(Pid3),
+    ok = gen_event:stop(my_dummy_name),
+
+    {ok, Pid4} = gen_event:start_link(?GMGR, []),
+    [] = gen_event:which_handlers(?GMGR),
+    [] = gen_event:which_handlers(Pid4),
+    ok = gen_event:stop(?GMGR),
+
+    {ok, Pid5} = gen_event:start_link({via, dummy_via, my_dummy_name}, []),
+    [] = gen_event:which_handlers({via, dummy_via, my_dummy_name}),
+    [] = gen_event:which_handlers(Pid5),
+    ok = gen_event:stop({via, dummy_via, my_dummy_name}),
+
+    {ok, _} = gen_event:start_link(?LMGR, []),
+    {error, {already_started, _}} = gen_event:start_link(?LMGR, []),
+    {error, {already_started, _}} = gen_event:start(?LMGR, []),
+    ok = gen_event:stop(my_dummy_name),
+
+    {ok, Pid7} = gen_event:start_link(?GMGR),
+    {error, {already_started, _}} = gen_event:start_link(?GMGR, []),
+    {error, {already_started, _}} = gen_event:start(?GMGR, []),
+
+    ok = gen_event:stop(?GMGR, shutdown, 10000),
+    receive
+	{'EXIT', Pid7, shutdown} -> ok
+    after 10000 ->
+	    ct:fail(exit_gen_event)
+    end,
+
+    {ok, Pid8} = gen_event:start_link({via, dummy_via, my_dummy_name}),
+    {error, {already_started, _}} = gen_event:start_link({via, dummy_via, my_dummy_name}, []),
+    {error, {already_started, _}} = gen_event:start({via, dummy_via, my_dummy_name}, []),
+
+    exit(Pid8, shutdown),
+    receive
+	{'EXIT', Pid8, shutdown} -> ok
+    after 10000 ->
+	    ct:fail(exit_gen_event)
+    end,
+
+    %% test spawn_opt
+    MinHeapSz = 10000,
+    {ok, Pid9} = gen_event:start_link(?LMGR, [{spawn_opt, [{min_heap_size, MinHeapSz}]}]),
+    {error, {already_started, _}} = gen_event:start_link(?LMGR, []),
+    {error, {already_started, _}} = gen_event:start(?LMGR, []),
+    {heap_size, HeapSz} = erlang:process_info(Pid9, heap_size),
+    true = HeapSz > MinHeapSz,
+    ok = gen_event:stop(my_dummy_name),
+
+    %% test debug opt
+    {ok, _} = gen_event:start_link(?LMGR, [{debug,[debug]}]),
+    {error, {already_started, _}} = gen_event:start_link(?LMGR, []),
+    {error, {already_started, _}} = gen_event:start(?LMGR, []),
+    ok = gen_event:stop(my_dummy_name),
+
+    process_flag(trap_exit, OldFl),
+    ok.
+
 hibernate(Config) when is_list(Config) ->
     {ok,Pid} = gen_event:start({local, my_dummy_handler}),
     ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]),
-- 
2.11.0

openSUSE Build Service is sponsored by