diff options
Diffstat (limited to 'lib/stdlib/test/gen_event_SUITE.erl')
-rw-r--r-- | lib/stdlib/test/gen_event_SUITE.erl | 1184 |
1 files changed, 592 insertions, 592 deletions
diff --git a/lib/stdlib/test/gen_event_SUITE.erl b/lib/stdlib/test/gen_event_SUITE.erl index de76d5d6f9..4bad7801ff 100644 --- a/lib/stdlib/test/gen_event_SUITE.erl +++ b/lib/stdlib/test/gen_event_SUITE.erl @@ -62,47 +62,47 @@ end_per_group(_GroupName, Config) -> start(Config) when is_list(Config) -> OldFl = process_flag(trap_exit, true), - ?line dummy_via:reset(), - - ?line {ok, Pid0} = gen_event:start(), %anonymous - ?line [] = gen_event:which_handlers(Pid0), - ?line ok = gen_event:stop(Pid0), - - ?line {ok, Pid1} = gen_event:start_link(), %anonymous - ?line [] = gen_event:which_handlers(Pid1), - ?line ok = gen_event:stop(Pid1), - - ?line {ok, Pid2} = gen_event:start({local, my_dummy_name}), - ?line [] = gen_event:which_handlers(my_dummy_name), - ?line [] = gen_event:which_handlers(Pid2), - ?line ok = gen_event:stop(my_dummy_name), - - ?line {ok, Pid3} = gen_event:start_link({local, my_dummy_name}), - ?line [] = gen_event:which_handlers(my_dummy_name), - ?line [] = gen_event:which_handlers(Pid3), - ?line ok = gen_event:stop(my_dummy_name), - - ?line {ok, Pid4} = gen_event:start_link({global, my_dummy_name}), - ?line [] = gen_event:which_handlers({global, my_dummy_name}), - ?line [] = gen_event:which_handlers(Pid4), - ?line ok = gen_event:stop({global, my_dummy_name}), - - ?line {ok, Pid5} = gen_event:start_link({via, dummy_via, my_dummy_name}), - ?line [] = gen_event:which_handlers({via, dummy_via, my_dummy_name}), - ?line [] = gen_event:which_handlers(Pid5), - ?line ok = gen_event:stop({via, dummy_via, my_dummy_name}), - - ?line {ok, _} = gen_event:start_link({local, my_dummy_name}), - ?line {error, {already_started, _}} = + 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({local, my_dummy_name}), + [] = 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({local, my_dummy_name}), + [] = 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({global, my_dummy_name}), + [] = gen_event:which_handlers({global, my_dummy_name}), + [] = gen_event:which_handlers(Pid4), + ok = gen_event:stop({global, my_dummy_name}), + + {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({local, my_dummy_name}), + {error, {already_started, _}} = gen_event:start_link({local, my_dummy_name}), - ?line {error, {already_started, _}} = + {error, {already_started, _}} = gen_event:start({local, my_dummy_name}), - ?line ok = gen_event:stop(my_dummy_name), + ok = gen_event:stop(my_dummy_name), - ?line {ok, Pid6} = gen_event:start_link({global, my_dummy_name}), - ?line {error, {already_started, _}} = + {ok, Pid6} = gen_event:start_link({global, my_dummy_name}), + {error, {already_started, _}} = gen_event:start_link({global, my_dummy_name}), - ?line {error, {already_started, _}} = + {error, {already_started, _}} = gen_event:start({global, my_dummy_name}), ok = gen_event:stop({global, my_dummy_name}, shutdown, 10000), @@ -112,10 +112,10 @@ start(Config) when is_list(Config) -> ct:fail(exit_gen_event) end, - ?line {ok, Pid7} = gen_event:start_link({via, dummy_via, my_dummy_name}), - ?line {error, {already_started, _}} = + {ok, Pid7} = gen_event:start_link({via, dummy_via, my_dummy_name}), + {error, {already_started, _}} = gen_event:start_link({via, dummy_via, my_dummy_name}), - ?line {error, {already_started, _}} = + {error, {already_started, _}} = gen_event:start({via, dummy_via, my_dummy_name}), exit(Pid7, shutdown), @@ -181,7 +181,7 @@ hibernate(Config) when is_list(Config) -> {ok,Pid2} = gen_event:start({local, my_dummy_handler}), ok = gen_event:add_handler(my_dummy_handler, dummy_h, - [self(),hibernate]), + [self(),hibernate]), is_in_erlang_hibernate(Pid2), sys:suspend(my_dummy_handler), is_in_erlang_hibernate(Pid2), @@ -190,7 +190,7 @@ hibernate(Config) when is_list(Config) -> Pid2 ! wake, is_not_in_erlang_hibernate(Pid2), - + ok = gen_event:stop(my_dummy_handler), ok. @@ -231,693 +231,693 @@ is_not_in_erlang_hibernate_1(N, Pid) -> add_handler(Config) when is_list(Config) -> - ?line {ok,_} = gen_event:start({local, my_dummy_handler}), - ?line {error, my_error} = + {ok,_} = gen_event:start({local, my_dummy_handler}), + {error, my_error} = gen_event:add_handler(my_dummy_handler, dummy_h, make_error), - ?line [] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]), - ?line [dummy_h] = gen_event:which_handlers(my_dummy_handler), + [] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]), + [dummy_h] = gen_event:which_handlers(my_dummy_handler), - ?line {error, my_error} = + {error, my_error} = gen_event:add_handler(my_dummy_handler, {dummy_h, self()}, make_error), - ?line [dummy_h] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:add_handler(my_dummy_handler, {dummy_h,self()}, - [self()]), + [dummy_h] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:add_handler(my_dummy_handler, {dummy_h,self()}, + [self()]), Self = self(), - ?line [{dummy_h, Self}, dummy_h] = + [{dummy_h, Self}, dummy_h] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:stop(my_dummy_handler), + ok = gen_event:stop(my_dummy_handler), ok. add_sup_handler(Config) when is_list(Config) -> - ?line {ok,Pid} = gen_event:start({local, my_dummy_handler}), - ?line {error, my_error} = + {ok,Pid} = gen_event:start({local, my_dummy_handler}), + {error, my_error} = gen_event:add_sup_handler(my_dummy_handler, dummy_h, make_error), - ?line [] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:add_sup_handler(my_dummy_handler, dummy_h, [self()]), - ?line [dummy_h] = gen_event:which_handlers(my_dummy_handler), - ?line exit(Pid, sup_died), + [] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:add_sup_handler(my_dummy_handler, dummy_h, [self()]), + [dummy_h] = gen_event:which_handlers(my_dummy_handler), + exit(Pid, sup_died), ct:sleep(1000), - ?line [] = gen_event:which_handlers(my_dummy_handler), + [] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:add_sup_handler(my_dummy_handler, dummy_h, [self()]), - ?line [dummy_h] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:add_sup_handler(my_dummy_handler, dummy_h, [self()]), + [dummy_h] = gen_event:which_handlers(my_dummy_handler), - ?line {error, my_error} = + {error, my_error} = gen_event:add_handler(my_dummy_handler, {dummy_h, self()}, make_error), - ?line [dummy_h] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:add_sup_handler(my_dummy_handler, {dummy_h,self()}, - [self()]), + [dummy_h] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:add_sup_handler(my_dummy_handler, {dummy_h,self()}, + [self()]), Self = self(), - ?line [{dummy_h, Self}, dummy_h] = + [{dummy_h, Self}, dummy_h] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:stop(my_dummy_handler), - - ?line receive - {gen_event_EXIT, dummy_h, shutdown} -> - ok - after 1000 -> - ct:fail({no,{gen_event_EXIT, dummy_h, shutdown}}) - end, - - ?line receive - {gen_event_EXIT, {dummy_h,Self}, shutdown} -> - ok - after 1000 -> - ct:fail({no,{gen_event_EXIT, {dummy_h,Self}, - shutdown}}) - end, + ok = gen_event:stop(my_dummy_handler), + + receive + {gen_event_EXIT, dummy_h, shutdown} -> + ok + after 1000 -> + ct:fail({no,{gen_event_EXIT, dummy_h, shutdown}}) + end, + + receive + {gen_event_EXIT, {dummy_h,Self}, shutdown} -> + ok + after 1000 -> + ct:fail({no,{gen_event_EXIT, {dummy_h,Self}, + shutdown}}) + end, ok. delete_handler(Config) when is_list(Config) -> - ?line {ok,_} = gen_event:start({local, my_dummy_handler}), - ?line ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]), - ?line {error, module_not_found} = + {ok,_} = gen_event:start({local, my_dummy_handler}), + ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]), + {error, module_not_found} = gen_event:delete_handler(my_dummy_handler, duuuuuuuuumy, []), - ?line return_hej = + return_hej = gen_event:delete_handler(my_dummy_handler, dummy_h, return_hej), - ?line [] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]), - ?line ok = + [] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]), + ok = gen_event:delete_handler(my_dummy_handler, dummy_h, []), - ?line [] = gen_event:which_handlers(my_dummy_handler), + [] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:add_handler(my_dummy_handler, {dummy_h,1}, [self()]), - ?line ok = gen_event:add_handler(my_dummy_handler, {dummy_h,2}, [self()]), - ?line {error, module_not_found} = + ok = gen_event:add_handler(my_dummy_handler, {dummy_h,1}, [self()]), + ok = gen_event:add_handler(my_dummy_handler, {dummy_h,2}, [self()]), + {error, module_not_found} = gen_event:delete_handler(my_dummy_handler, {duuuuuuuuumy,1}, []), - ?line return_hej = + return_hej = gen_event:delete_handler(my_dummy_handler, {dummy_h,1}, return_hej), - ?line return_hej = + return_hej = gen_event:delete_handler(my_dummy_handler, {dummy_h,2}, return_hej), - ?line [] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:add_handler(my_dummy_handler, {dummy_h,2}, [self()]), - ?line ok = + [] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:add_handler(my_dummy_handler, {dummy_h,2}, [self()]), + ok = gen_event:delete_handler(my_dummy_handler, {dummy_h,2}, []), - ?line [] = gen_event:which_handlers(my_dummy_handler), + [] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:stop(my_dummy_handler), + ok = gen_event:stop(my_dummy_handler), ok. swap_handler(Config) when is_list(Config) -> - ?line {ok,_} = gen_event:start({local, my_dummy_handler}), - ?line ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]), - ?line {error, non_existing} = + {ok,_} = gen_event:start({local, my_dummy_handler}), + ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]), + {error, non_existing} = gen_event:swap_handler(my_dummy_handler, {faulty_h, swap}, {dummy1_h, []}), - ?line ok = + ok = gen_event:swap_handler(my_dummy_handler, {dummy_h, swap}, {dummy1_h, swap}), - ?line [dummy1_h] = gen_event:which_handlers(my_dummy_handler), + [dummy1_h] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:delete_handler(my_dummy_handler, dummy1_h, []), + ok = gen_event:delete_handler(my_dummy_handler, dummy1_h, []), - ?line ok = gen_event:add_handler(my_dummy_handler, {dummy_h,3}, [self()]), - ?line {error, non_existing} = + ok = gen_event:add_handler(my_dummy_handler, {dummy_h,3}, [self()]), + {error, non_existing} = gen_event:swap_handler(my_dummy_handler, {faulty_h, swap}, {dummy1_h, []}), - ?line ok = + ok = gen_event:swap_handler(my_dummy_handler, {{dummy_h,3}, swap}, {{dummy1_h,4}, swap}), - ?line [{dummy1_h,4}] = gen_event:which_handlers(my_dummy_handler), + [{dummy1_h,4}] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:delete_handler(my_dummy_handler, {dummy1_h,4}, []), + ok = gen_event:delete_handler(my_dummy_handler, {dummy1_h,4}, []), - ?line ok = gen_event:stop(my_dummy_handler), + ok = gen_event:stop(my_dummy_handler), ok. - + swap_sup_handler(Config) when is_list(Config) -> - ?line {ok,_} = gen_event:start({local, my_dummy_handler}), - ?line ok = gen_event:add_sup_handler(my_dummy_handler, dummy_h, [self()]), - ?line {error, non_existing} = + {ok,_} = gen_event:start({local, my_dummy_handler}), + ok = gen_event:add_sup_handler(my_dummy_handler, dummy_h, [self()]), + {error, non_existing} = gen_event:swap_handler(my_dummy_handler, {faulty_h, swap}, {dummy1_h, []}), - ?line ok = + ok = gen_event:swap_handler(my_dummy_handler, {dummy_h, swap}, {dummy1_h, swap}), - ?line [dummy1_h] = gen_event:which_handlers(my_dummy_handler), - - ?line ok = gen_event:delete_handler(my_dummy_handler, dummy1_h, []), - ?line receive - {gen_event_EXIT, dummy1_h, normal} -> - ok - after 1000 -> - ct:fail({no,{gen_event_EXIT, dummy1_h, normal}}) - end, - - ?line ok = gen_event:add_sup_handler(my_dummy_handler, {dummy_h,3}, - [self()]), - ?line {error, non_existing} = + [dummy1_h] = gen_event:which_handlers(my_dummy_handler), + + ok = gen_event:delete_handler(my_dummy_handler, dummy1_h, []), + receive + {gen_event_EXIT, dummy1_h, normal} -> + ok + after 1000 -> + ct:fail({no,{gen_event_EXIT, dummy1_h, normal}}) + end, + + ok = gen_event:add_sup_handler(my_dummy_handler, {dummy_h,3}, + [self()]), + {error, non_existing} = gen_event:swap_sup_handler(my_dummy_handler, {faulty_h, swap}, {dummy1_h, []}), - ?line ok = + ok = gen_event:swap_sup_handler(my_dummy_handler, {{dummy_h,3}, swap}, {{dummy1_h,4}, swap}), - ?line [{dummy1_h,4}] = gen_event:which_handlers(my_dummy_handler), + [{dummy1_h,4}] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:delete_handler(my_dummy_handler, {dummy1_h,4}, []), - ?line receive - {gen_event_EXIT, {dummy1_h,4}, normal} -> - ok - after 1000 -> - ct:fail({no,{gen_event_EXIT, {dummy1_h,4}, normal}}) - end, + ok = gen_event:delete_handler(my_dummy_handler, {dummy1_h,4}, []), + receive + {gen_event_EXIT, {dummy1_h,4}, normal} -> + ok + after 1000 -> + ct:fail({no,{gen_event_EXIT, {dummy1_h,4}, normal}}) + end, - ?line ok = gen_event:stop(my_dummy_handler), + ok = gen_event:stop(my_dummy_handler), ok. - + notify(Config) when is_list(Config) -> - ?line {ok,_} = gen_event:start({local, my_dummy_handler}), - ?line ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]), + {ok,_} = gen_event:start({local, my_dummy_handler}), + ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]), Event = {event, self()}, - ?line [dummy_h] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:notify(my_dummy_handler, Event), - ?line receive - {dummy_h, Event} -> - ok - end, - ?line ok = gen_event:notify(my_dummy_handler, {swap_event,dummy1_h,swap}), - ?line [dummy1_h] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:notify(my_dummy_handler, Event), - ?line receive - {dummy1_h, Event} -> - ok - end, - ?line ok = gen_event:notify(my_dummy_handler, delete_event), - ?line receive - {dummy1_h, removed} -> - ok - end, - ?line [] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]), - - ?line ok = gen_event:notify(my_dummy_handler, error_event), - ?line receive - {dummy_h, returned_error} -> - ok - end, - ?line [] = gen_event:which_handlers(my_dummy_handler), + [dummy_h] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:notify(my_dummy_handler, Event), + receive + {dummy_h, Event} -> + ok + end, + ok = gen_event:notify(my_dummy_handler, {swap_event,dummy1_h,swap}), + [dummy1_h] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:notify(my_dummy_handler, Event), + receive + {dummy1_h, Event} -> + ok + end, + ok = gen_event:notify(my_dummy_handler, delete_event), + receive + {dummy1_h, removed} -> + ok + end, + [] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]), + + ok = gen_event:notify(my_dummy_handler, error_event), + receive + {dummy_h, returned_error} -> + ok + end, + [] = gen_event:which_handlers(my_dummy_handler), %% Handler with id, {Mod,Id} - ?line ok = gen_event:add_handler(my_dummy_handler, {dummy_h,5}, [self()]), - ?line [{dummy_h,5}] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:notify(my_dummy_handler, Event), - ?line receive - {dummy_h, Event} -> - ok - end, - ?line ok = gen_event:notify(my_dummy_handler, - {swap_event, {dummy1_h, 9}, swap}), - ?line [{dummy1_h,9}] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:notify(my_dummy_handler, Event), - ?line receive - {dummy1_h, Event} -> - ok - end, - ?line ok = gen_event:notify(my_dummy_handler, delete_event), - ?line receive - {dummy1_h, removed} -> - ok - end, - ?line [] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:add_handler(my_dummy_handler, {dummy_h,a}, [self()]), - - ?line ok = gen_event:notify(my_dummy_handler, error_event), - ?line receive - {dummy_h, returned_error} -> - ok - end, - ?line [] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:add_handler(my_dummy_handler, {dummy_h,5}, [self()]), + [{dummy_h,5}] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:notify(my_dummy_handler, Event), + receive + {dummy_h, Event} -> + ok + end, + ok = gen_event:notify(my_dummy_handler, + {swap_event, {dummy1_h, 9}, swap}), + [{dummy1_h,9}] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:notify(my_dummy_handler, Event), + receive + {dummy1_h, Event} -> + ok + end, + ok = gen_event:notify(my_dummy_handler, delete_event), + receive + {dummy1_h, removed} -> + ok + end, + [] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:add_handler(my_dummy_handler, {dummy_h,a}, [self()]), + + ok = gen_event:notify(my_dummy_handler, error_event), + receive + {dummy_h, returned_error} -> + ok + end, + [] = gen_event:which_handlers(my_dummy_handler), %% Supervised handler. - ?line ok = gen_event:add_sup_handler(my_dummy_handler, dummy_h, [self()]), - ?line [dummy_h] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:notify(my_dummy_handler, Event), - ?line receive - {dummy_h, Event} -> - ok - end, - - ?line ok = gen_event:notify(my_dummy_handler, do_crash), - ?line receive - {gen_event_EXIT, dummy_h, {'EXIT',_}} -> - ok - end, - - ?line ok = gen_event:add_sup_handler(my_dummy_handler, dummy_h, [self()]), - ?line ok = gen_event:notify(my_dummy_handler, {swap_event,dummy1_h,swap}), - ?line [dummy1_h] = gen_event:which_handlers(my_dummy_handler), - - ?line ok = gen_event:notify(my_dummy_handler, do_crash), - ?line receive - {gen_event_EXIT, dummy1_h, {'EXIT',_}} -> - ok - end, - - ?line ok = gen_event:add_sup_handler(my_dummy_handler, dummy_h, [self()]), - ?line ok = gen_event:notify(my_dummy_handler, {swap_event,dummy1_h,swap}), - ?line [dummy1_h] = gen_event:which_handlers(my_dummy_handler), - - ?line ok = gen_event:notify(my_dummy_handler, delete_event), - ?line receive - {dummy1_h, removed} -> - ok - end, - - ?line receive - {gen_event_EXIT, dummy1_h, normal} -> - ok - end, - - ?line [] = gen_event:which_handlers(my_dummy_handler), - - ?line ok = gen_event:stop(my_dummy_handler), + ok = gen_event:add_sup_handler(my_dummy_handler, dummy_h, [self()]), + [dummy_h] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:notify(my_dummy_handler, Event), + receive + {dummy_h, Event} -> + ok + end, + + ok = gen_event:notify(my_dummy_handler, do_crash), + receive + {gen_event_EXIT, dummy_h, {'EXIT',_}} -> + ok + end, + + ok = gen_event:add_sup_handler(my_dummy_handler, dummy_h, [self()]), + ok = gen_event:notify(my_dummy_handler, {swap_event,dummy1_h,swap}), + [dummy1_h] = gen_event:which_handlers(my_dummy_handler), + + ok = gen_event:notify(my_dummy_handler, do_crash), + receive + {gen_event_EXIT, dummy1_h, {'EXIT',_}} -> + ok + end, + + ok = gen_event:add_sup_handler(my_dummy_handler, dummy_h, [self()]), + ok = gen_event:notify(my_dummy_handler, {swap_event,dummy1_h,swap}), + [dummy1_h] = gen_event:which_handlers(my_dummy_handler), + + ok = gen_event:notify(my_dummy_handler, delete_event), + receive + {dummy1_h, removed} -> + ok + end, + + receive + {gen_event_EXIT, dummy1_h, normal} -> + ok + end, + + [] = gen_event:which_handlers(my_dummy_handler), + + ok = gen_event:stop(my_dummy_handler), ok. sync_notify(Config) when is_list(Config) -> - ?line {ok,_} = gen_event:start({local, my_dummy_handler}), - ?line ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]), + {ok,_} = gen_event:start({local, my_dummy_handler}), + ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]), Event = {event, self()}, - ?line [dummy_h] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:sync_notify(my_dummy_handler, Event), - ?line receive - {dummy_h, Event} -> - ok - end, - ?line ok = gen_event:sync_notify(my_dummy_handler, - {swap_event, dummy1_h, swap}), - ?line [dummy1_h] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:sync_notify(my_dummy_handler, Event), - ?line receive - {dummy1_h, Event} -> - ok - end, - ?line ok = gen_event:sync_notify(my_dummy_handler, delete_event), - ?line receive - {dummy1_h, removed} -> - ok - end, - ?line [] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]), - - ?line ok = gen_event:sync_notify(my_dummy_handler, error_event), - ?line receive - {dummy_h, returned_error} -> - ok - end, - ?line [] = gen_event:which_handlers(my_dummy_handler), + [dummy_h] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:sync_notify(my_dummy_handler, Event), + receive + {dummy_h, Event} -> + ok + end, + ok = gen_event:sync_notify(my_dummy_handler, + {swap_event, dummy1_h, swap}), + [dummy1_h] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:sync_notify(my_dummy_handler, Event), + receive + {dummy1_h, Event} -> + ok + end, + ok = gen_event:sync_notify(my_dummy_handler, delete_event), + receive + {dummy1_h, removed} -> + ok + end, + [] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]), + + ok = gen_event:sync_notify(my_dummy_handler, error_event), + receive + {dummy_h, returned_error} -> + ok + end, + [] = gen_event:which_handlers(my_dummy_handler), %% Handler with id, {Mod,Id} - ?line ok = gen_event:add_handler(my_dummy_handler, {dummy_h,5}, [self()]), - ?line [{dummy_h,5}] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:sync_notify(my_dummy_handler, Event), - ?line receive - {dummy_h, Event} -> - ok - end, - ?line ok = gen_event:sync_notify(my_dummy_handler, - {swap_event, {dummy1_h, 9}, swap}), - ?line [{dummy1_h,9}] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:sync_notify(my_dummy_handler, Event), - ?line receive - {dummy1_h, Event} -> - ok - end, - ?line ok = gen_event:sync_notify(my_dummy_handler, delete_event), - ?line receive - {dummy1_h, removed} -> - ok - end, - ?line [] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:add_handler(my_dummy_handler, {dummy_h,a}, [self()]), - - ?line ok = gen_event:sync_notify(my_dummy_handler, error_event), - ?line receive - {dummy_h, returned_error} -> - ok - end, - ?line [] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:add_handler(my_dummy_handler, {dummy_h,5}, [self()]), + [{dummy_h,5}] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:sync_notify(my_dummy_handler, Event), + receive + {dummy_h, Event} -> + ok + end, + ok = gen_event:sync_notify(my_dummy_handler, + {swap_event, {dummy1_h, 9}, swap}), + [{dummy1_h,9}] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:sync_notify(my_dummy_handler, Event), + receive + {dummy1_h, Event} -> + ok + end, + ok = gen_event:sync_notify(my_dummy_handler, delete_event), + receive + {dummy1_h, removed} -> + ok + end, + [] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:add_handler(my_dummy_handler, {dummy_h,a}, [self()]), + + ok = gen_event:sync_notify(my_dummy_handler, error_event), + receive + {dummy_h, returned_error} -> + ok + end, + [] = gen_event:which_handlers(my_dummy_handler), %% Supervised handler. - ?line ok = gen_event:add_sup_handler(my_dummy_handler, dummy_h, [self()]), - ?line [dummy_h] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:sync_notify(my_dummy_handler, Event), - ?line receive - {dummy_h, Event} -> - ok - end, - - ?line ok = gen_event:sync_notify(my_dummy_handler, do_crash), - ?line receive - {gen_event_EXIT, dummy_h, {'EXIT',_}} -> - ok - end, - - ?line ok = gen_event:add_sup_handler(my_dummy_handler, dummy_h, [self()]), - ?line ok = gen_event:sync_notify(my_dummy_handler, - {swap_event,dummy1_h,swap}), - ?line [dummy1_h] = gen_event:which_handlers(my_dummy_handler), - - ?line ok = gen_event:sync_notify(my_dummy_handler, do_crash), - ?line receive - {gen_event_EXIT, dummy1_h, {'EXIT',_}} -> - ok - end, - - ?line ok = gen_event:add_sup_handler(my_dummy_handler, dummy_h, [self()]), - ?line ok = gen_event:sync_notify(my_dummy_handler, - {swap_event,dummy1_h,swap}), - ?line [dummy1_h] = gen_event:which_handlers(my_dummy_handler), - - ?line ok = gen_event:sync_notify(my_dummy_handler, delete_event), - ?line receive - {dummy1_h, removed} -> - ok - end, - - ?line receive - {gen_event_EXIT, dummy1_h, normal} -> - ok - end, - - ?line [] = gen_event:which_handlers(my_dummy_handler), - - ?line ok = gen_event:stop(my_dummy_handler), + ok = gen_event:add_sup_handler(my_dummy_handler, dummy_h, [self()]), + [dummy_h] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:sync_notify(my_dummy_handler, Event), + receive + {dummy_h, Event} -> + ok + end, + + ok = gen_event:sync_notify(my_dummy_handler, do_crash), + receive + {gen_event_EXIT, dummy_h, {'EXIT',_}} -> + ok + end, + + ok = gen_event:add_sup_handler(my_dummy_handler, dummy_h, [self()]), + ok = gen_event:sync_notify(my_dummy_handler, + {swap_event,dummy1_h,swap}), + [dummy1_h] = gen_event:which_handlers(my_dummy_handler), + + ok = gen_event:sync_notify(my_dummy_handler, do_crash), + receive + {gen_event_EXIT, dummy1_h, {'EXIT',_}} -> + ok + end, + + ok = gen_event:add_sup_handler(my_dummy_handler, dummy_h, [self()]), + ok = gen_event:sync_notify(my_dummy_handler, + {swap_event,dummy1_h,swap}), + [dummy1_h] = gen_event:which_handlers(my_dummy_handler), + + ok = gen_event:sync_notify(my_dummy_handler, delete_event), + receive + {dummy1_h, removed} -> + ok + end, + + receive + {gen_event_EXIT, dummy1_h, normal} -> + ok + end, + + [] = gen_event:which_handlers(my_dummy_handler), + + ok = gen_event:stop(my_dummy_handler), ok. call(Config) when is_list(Config) -> - ?line {ok,_} = gen_event:start({local, my_dummy_handler}), - ?line ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]), - ?line ok = gen_event:add_handler(my_dummy_handler, {dummy_h, 1}, [self()]), - ?line [{dummy_h, 1}, dummy_h] = gen_event:which_handlers(my_dummy_handler), - ?line {'EXIT',_} = (catch gen_event:call(non_exist, dummy_h, hejsan)), - ?line {error, bad_module} = + {ok,_} = gen_event:start({local, my_dummy_handler}), + ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]), + ok = gen_event:add_handler(my_dummy_handler, {dummy_h, 1}, [self()]), + [{dummy_h, 1}, dummy_h] = gen_event:which_handlers(my_dummy_handler), + {'EXIT',_} = (catch gen_event:call(non_exist, dummy_h, hejsan)), + {error, bad_module} = gen_event:call(my_dummy_handler, bad_h, hejsan), - ?line {ok, hejhopp} = gen_event:call(my_dummy_handler, dummy_h, hejsan), - ?line {ok, hejhopp} = gen_event:call(my_dummy_handler, {dummy_h, 1}, - hejsan), - ?line {ok, hejhopp} = gen_event:call(my_dummy_handler, dummy_h, hejsan, - 10000), - ?line {'EXIT', {timeout, _}} = + {ok, hejhopp} = gen_event:call(my_dummy_handler, dummy_h, hejsan), + {ok, hejhopp} = gen_event:call(my_dummy_handler, {dummy_h, 1}, + hejsan), + {ok, hejhopp} = gen_event:call(my_dummy_handler, dummy_h, hejsan, + 10000), + {'EXIT', {timeout, _}} = (catch gen_event:call(my_dummy_handler, dummy_h, hejsan, 0)), flush(), - ?line ok = gen_event:delete_handler(my_dummy_handler, {dummy_h, 1}, []), - ?line {ok, swapped} = gen_event:call(my_dummy_handler, dummy_h, - {swap_call,dummy1_h,swap}), - ?line [dummy1_h] = gen_event:which_handlers(my_dummy_handler), - ?line {error, bad_module} = + ok = gen_event:delete_handler(my_dummy_handler, {dummy_h, 1}, []), + {ok, swapped} = gen_event:call(my_dummy_handler, dummy_h, + {swap_call,dummy1_h,swap}), + [dummy1_h] = gen_event:which_handlers(my_dummy_handler), + {error, bad_module} = gen_event:call(my_dummy_handler, dummy_h, hejsan), - ?line ok = gen_event:call(my_dummy_handler, dummy1_h, delete_call), - ?line receive - {dummy1_h, removed} -> - ok - end, - ?line [] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]), - - ?line {error, {return, faulty}} = + ok = gen_event:call(my_dummy_handler, dummy1_h, delete_call), + receive + {dummy1_h, removed} -> + ok + end, + [] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]), + + {error, {return, faulty}} = gen_event:call(my_dummy_handler, dummy_h, error_call), - ?line receive - {dummy_h, returned_error} -> - ok - end, - ?line [] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]), - - ?line {error, {'EXIT', _}} = + receive + {dummy_h, returned_error} -> + ok + end, + [] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]), + + {error, {'EXIT', _}} = gen_event:call(my_dummy_handler, dummy_h, exit_call), - ?line [] = gen_event:which_handlers(my_dummy_handler), + [] = gen_event:which_handlers(my_dummy_handler), %% Handler with id, {Mod,Id} - ?line ok = gen_event:add_handler(my_dummy_handler, {dummy_h,1}, [self()]), - ?line [{dummy_h,1}] = gen_event:which_handlers(my_dummy_handler), - ?line {error, bad_module} = + ok = gen_event:add_handler(my_dummy_handler, {dummy_h,1}, [self()]), + [{dummy_h,1}] = gen_event:which_handlers(my_dummy_handler), + {error, bad_module} = gen_event:call(my_dummy_handler, bad_h, hejsan), - ?line {ok, hejhopp} = gen_event:call(my_dummy_handler, {dummy_h,1}, - hejsan), - ?line {ok, swapped} = gen_event:call(my_dummy_handler, {dummy_h,1}, - {swap_call,{dummy1_h,2},swap}), - ?line [{dummy1_h,2}] = gen_event:which_handlers(my_dummy_handler), - ?line {error, bad_module} = + {ok, hejhopp} = gen_event:call(my_dummy_handler, {dummy_h,1}, + hejsan), + {ok, swapped} = gen_event:call(my_dummy_handler, {dummy_h,1}, + {swap_call,{dummy1_h,2},swap}), + [{dummy1_h,2}] = gen_event:which_handlers(my_dummy_handler), + {error, bad_module} = gen_event:call(my_dummy_handler, dummy_h, hejsan), - ?line ok = gen_event:call(my_dummy_handler, {dummy1_h,2}, delete_call), - ?line receive - {dummy1_h, removed} -> - ok - end, - ?line [] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:add_handler(my_dummy_handler, {dummy_h,3}, [self()]), - - ?line {error, {return, faulty}} = + ok = gen_event:call(my_dummy_handler, {dummy1_h,2}, delete_call), + receive + {dummy1_h, removed} -> + ok + end, + [] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:add_handler(my_dummy_handler, {dummy_h,3}, [self()]), + + {error, {return, faulty}} = gen_event:call(my_dummy_handler, {dummy_h,3}, error_call), - ?line receive - {dummy_h, returned_error} -> - ok - end, - ?line [] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:add_handler(my_dummy_handler, {dummy_h,4}, [self()]), - - ?line {error, {'EXIT', _}} = + receive + {dummy_h, returned_error} -> + ok + end, + [] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:add_handler(my_dummy_handler, {dummy_h,4}, [self()]), + + {error, {'EXIT', _}} = gen_event:call(my_dummy_handler, {dummy_h,4}, exit_call), - ?line [] = gen_event:which_handlers(my_dummy_handler), + [] = gen_event:which_handlers(my_dummy_handler), %% Supervised handler. - ?line ok = gen_event:add_sup_handler(my_dummy_handler, dummy_h, [self()]), - ?line [dummy_h] = gen_event:which_handlers(my_dummy_handler), - ?line {error, bad_module} = + ok = gen_event:add_sup_handler(my_dummy_handler, dummy_h, [self()]), + [dummy_h] = gen_event:which_handlers(my_dummy_handler), + {error, bad_module} = gen_event:call(my_dummy_handler, bad_h, hejsan), - ?line {ok, hejhopp} = gen_event:call(my_dummy_handler, dummy_h, hejsan), - ?line {ok, swapped} = gen_event:call(my_dummy_handler, dummy_h, - {swap_call,dummy1_h,swap}), - ?line [dummy1_h] = gen_event:which_handlers(my_dummy_handler), - ?line {error, bad_module} = + {ok, hejhopp} = gen_event:call(my_dummy_handler, dummy_h, hejsan), + {ok, swapped} = gen_event:call(my_dummy_handler, dummy_h, + {swap_call,dummy1_h,swap}), + [dummy1_h] = gen_event:which_handlers(my_dummy_handler), + {error, bad_module} = gen_event:call(my_dummy_handler, dummy_h, hejsan), - ?line ok = gen_event:call(my_dummy_handler, dummy1_h, delete_call), - ?line receive - {dummy1_h, removed} -> - ok - end, + ok = gen_event:call(my_dummy_handler, dummy1_h, delete_call), + receive + {dummy1_h, removed} -> + ok + end, - ?line receive - {gen_event_EXIT, dummy1_h, normal} -> - ok - end, + receive + {gen_event_EXIT, dummy1_h, normal} -> + ok + end, - ?line [] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:add_sup_handler(my_dummy_handler, dummy_h, [self()]), + [] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:add_sup_handler(my_dummy_handler, dummy_h, [self()]), - ?line {error, {return, faulty}} = + {error, {return, faulty}} = gen_event:call(my_dummy_handler, dummy_h, error_call), - ?line receive - {dummy_h, returned_error} -> - ok - end, - - ?line receive - {gen_event_EXIT, dummy_h, {return,faulty}} -> - ok - after 1000 -> - ct:fail({no, {gen_event_EXIT, dummy_h, {return,faulty}}}) - end, - - ?line [] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:add_sup_handler(my_dummy_handler, dummy_h, [self()]), - - ?line {error, {'EXIT', _}} = + receive + {dummy_h, returned_error} -> + ok + end, + + receive + {gen_event_EXIT, dummy_h, {return,faulty}} -> + ok + after 1000 -> + ct:fail({no, {gen_event_EXIT, dummy_h, {return,faulty}}}) + end, + + [] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:add_sup_handler(my_dummy_handler, dummy_h, [self()]), + + {error, {'EXIT', _}} = gen_event:call(my_dummy_handler, dummy_h, exit_call), - ?line receive - {gen_event_EXIT, dummy_h, {'EXIT',_}} -> - ok - after 1000 -> - ct:fail({no, {gen_event_EXIT, dummy_h, {'EXIT','_'}}}) - end, + receive + {gen_event_EXIT, dummy_h, {'EXIT',_}} -> + ok + after 1000 -> + ct:fail({no, {gen_event_EXIT, dummy_h, {'EXIT','_'}}}) + end, - ?line [] = gen_event:which_handlers(my_dummy_handler), + [] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:stop(my_dummy_handler), + ok = gen_event:stop(my_dummy_handler), ok. flush() -> receive _ -> flush() after 0 -> ok end. info(Config) when is_list(Config) -> - ?line {ok,_} = gen_event:start({local, my_dummy_handler}), - ?line ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]), + {ok,_} = gen_event:start({local, my_dummy_handler}), + ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]), Info = {info, self()}, - ?line [dummy_h] = gen_event:which_handlers(my_dummy_handler), - ?line my_dummy_handler ! Info, - ?line receive - {dummy_h, Info} -> - ok - end, - ?line my_dummy_handler ! {swap_info,dummy1_h,swap}, - ?line [dummy1_h] = gen_event:which_handlers(my_dummy_handler), - ?line my_dummy_handler ! Info, - ?line receive - {dummy1_h, Info} -> - ok - end, - ?line my_dummy_handler ! delete_info, - ?line receive - {dummy1_h, removed} -> - ok - end, - ?line [] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]), - - ?line my_dummy_handler ! error_info, - ?line receive - {dummy_h, returned_error} -> - ok - end, - ?line [] = gen_event:which_handlers(my_dummy_handler), + [dummy_h] = gen_event:which_handlers(my_dummy_handler), + my_dummy_handler ! Info, + receive + {dummy_h, Info} -> + ok + end, + my_dummy_handler ! {swap_info,dummy1_h,swap}, + [dummy1_h] = gen_event:which_handlers(my_dummy_handler), + my_dummy_handler ! Info, + receive + {dummy1_h, Info} -> + ok + end, + my_dummy_handler ! delete_info, + receive + {dummy1_h, removed} -> + ok + end, + [] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:add_handler(my_dummy_handler, dummy_h, [self()]), + + my_dummy_handler ! error_info, + receive + {dummy_h, returned_error} -> + ok + end, + [] = gen_event:which_handlers(my_dummy_handler), %% Handler with id, {Mod,Id} - ?line ok = gen_event:add_handler(my_dummy_handler, {dummy_h,1}, [self()]), - ?line [{dummy_h,1}] = gen_event:which_handlers(my_dummy_handler), - ?line my_dummy_handler ! Info, - ?line receive - {dummy_h, Info} -> - ok - end, - ?line my_dummy_handler ! {swap_info,{dummy1_h,2},swap}, - ?line [{dummy1_h,2}] = gen_event:which_handlers(my_dummy_handler), - ?line my_dummy_handler ! Info, - ?line receive - {dummy1_h, Info} -> - ok - end, - ?line my_dummy_handler ! delete_info, - ?line receive - {dummy1_h, removed} -> - ok - end, - ?line [] = gen_event:which_handlers(my_dummy_handler), - ?line ok = gen_event:add_handler(my_dummy_handler, {dummy_h,3}, [self()]), - - ?line my_dummy_handler ! error_info, - ?line receive - {dummy_h, returned_error} -> - ok - end, - ?line [] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:add_handler(my_dummy_handler, {dummy_h,1}, [self()]), + [{dummy_h,1}] = gen_event:which_handlers(my_dummy_handler), + my_dummy_handler ! Info, + receive + {dummy_h, Info} -> + ok + end, + my_dummy_handler ! {swap_info,{dummy1_h,2},swap}, + [{dummy1_h,2}] = gen_event:which_handlers(my_dummy_handler), + my_dummy_handler ! Info, + receive + {dummy1_h, Info} -> + ok + end, + my_dummy_handler ! delete_info, + receive + {dummy1_h, removed} -> + ok + end, + [] = gen_event:which_handlers(my_dummy_handler), + ok = gen_event:add_handler(my_dummy_handler, {dummy_h,3}, [self()]), + + my_dummy_handler ! error_info, + receive + {dummy_h, returned_error} -> + ok + end, + [] = gen_event:which_handlers(my_dummy_handler), %% Supervised handler - ?line ok = gen_event:add_sup_handler(my_dummy_handler, dummy_h, [self()]), - ?line [dummy_h] = gen_event:which_handlers(my_dummy_handler), - ?line my_dummy_handler ! Info, - ?line receive - {dummy_h, Info} -> - ok - end, - ?line my_dummy_handler ! {swap_info,dummy1_h,swap}, - ?line [dummy1_h] = gen_event:which_handlers(my_dummy_handler), - ?line my_dummy_handler ! Info, - ?line receive - {dummy1_h, Info} -> - ok - end, - ?line my_dummy_handler ! delete_info, - ?line receive - {dummy1_h, removed} -> - ok - end, - - ?line receive - {gen_event_EXIT, dummy1_h, normal} -> - ok - after 1000 -> - ct:fail({no, {gen_event_EXIT, dummy1_h, normal}}) - end, - - ?line [] = gen_event:which_handlers(my_dummy_handler), - - ?line ok = gen_event:add_sup_handler(my_dummy_handler, dummy_h, [self()]), - - ?line my_dummy_handler ! error_info, - ?line receive - {dummy_h, returned_error} -> - ok - end, - - ?line receive - {gen_event_EXIT, dummy_h, {return,faulty}} -> - ok - after 1000 -> - ct:fail({no, {gen_event_EXIT, dummy_h, {return,faulty}}}) - end, - - ?line ok = gen_event:add_sup_handler(my_dummy_handler, dummy_h, [self()]), - ?line my_dummy_handler ! do_crash, - - ?line receive - {gen_event_EXIT, dummy_h, {'EXIT',_}} -> - ok - after 1000 -> - ct:fail({no, {gen_event_EXIT, dummy_h, {'EXIT','_'}}}) - end, - - ?line [] = gen_event:which_handlers(my_dummy_handler), - - ?line ok = gen_event:stop(my_dummy_handler), + ok = gen_event:add_sup_handler(my_dummy_handler, dummy_h, [self()]), + [dummy_h] = gen_event:which_handlers(my_dummy_handler), + my_dummy_handler ! Info, + receive + {dummy_h, Info} -> + ok + end, + my_dummy_handler ! {swap_info,dummy1_h,swap}, + [dummy1_h] = gen_event:which_handlers(my_dummy_handler), + my_dummy_handler ! Info, + receive + {dummy1_h, Info} -> + ok + end, + my_dummy_handler ! delete_info, + receive + {dummy1_h, removed} -> + ok + end, + + receive + {gen_event_EXIT, dummy1_h, normal} -> + ok + after 1000 -> + ct:fail({no, {gen_event_EXIT, dummy1_h, normal}}) + end, + + [] = gen_event:which_handlers(my_dummy_handler), + + ok = gen_event:add_sup_handler(my_dummy_handler, dummy_h, [self()]), + + my_dummy_handler ! error_info, + receive + {dummy_h, returned_error} -> + ok + end, + + receive + {gen_event_EXIT, dummy_h, {return,faulty}} -> + ok + after 1000 -> + ct:fail({no, {gen_event_EXIT, dummy_h, {return,faulty}}}) + end, + + ok = gen_event:add_sup_handler(my_dummy_handler, dummy_h, [self()]), + my_dummy_handler ! do_crash, + + receive + {gen_event_EXIT, dummy_h, {'EXIT',_}} -> + ok + after 1000 -> + ct:fail({no, {gen_event_EXIT, dummy_h, {'EXIT','_'}}}) + end, + + [] = gen_event:which_handlers(my_dummy_handler), + + ok = gen_event:stop(my_dummy_handler), ok. %% Test that sys:get_status/1,2 calls format_status/2. call_format_status(Config) when is_list(Config) -> - ?line {ok, Pid} = gen_event:start({local, my_dummy_handler}), + {ok, Pid} = gen_event:start({local, my_dummy_handler}), %% State here intentionally differs from what we expect from format_status State = self(), FmtState = "dummy1_h handler state", - ?line ok = gen_event:add_handler(my_dummy_handler, dummy1_h, [State]), - ?line Status1 = sys:get_status(Pid), - ?line Status2 = sys:get_status(Pid, 5000), - ?line ok = gen_event:stop(Pid), - ?line {status, Pid, _, [_, _, Pid, [], Data1]} = Status1, - ?line HandlerInfo1 = proplists:get_value(items, Data1), - ?line {"Installed handlers", [{_,dummy1_h,_,FmtState,_}]} = HandlerInfo1, - ?line {status, Pid, _, [_, _, Pid, [], Data2]} = Status2, - ?line HandlerInfo2 = proplists:get_value(items, Data2), - ?line {"Installed handlers", [{_,dummy1_h,_,FmtState,_}]} = HandlerInfo2, + ok = gen_event:add_handler(my_dummy_handler, dummy1_h, [State]), + Status1 = sys:get_status(Pid), + Status2 = sys:get_status(Pid, 5000), + ok = gen_event:stop(Pid), + {status, Pid, _, [_, _, Pid, [], Data1]} = Status1, + HandlerInfo1 = proplists:get_value(items, Data1), + {"Installed handlers", [{_,dummy1_h,_,FmtState,_}]} = HandlerInfo1, + {status, Pid, _, [_, _, Pid, [], Data2]} = Status2, + HandlerInfo2 = proplists:get_value(items, Data2), + {"Installed handlers", [{_,dummy1_h,_,FmtState,_}]} = HandlerInfo2, ok. %% Test that sys:get_status/1,2 calls format_status/2 for anonymous %% gen_event processes. call_format_status_anon(Config) when is_list(Config) -> - ?line {ok, Pid} = gen_event:start(), + {ok, Pid} = gen_event:start(), %% The 'Name' of the gen_event process will be a pid() here, so %% the next line will crash if format_status can't string-ify pids. - ?line Status1 = sys:get_status(Pid), - ?line ok = gen_event:stop(Pid), + Status1 = sys:get_status(Pid), + ok = gen_event:stop(Pid), Header = "Status for event handler " ++ pid_to_list(Pid), - ?line {status, Pid, _, [_, _, Pid, [], Data1]} = Status1, - ?line Header = proplists:get_value(header, Data1), + {status, Pid, _, [_, _, Pid, [], Data1]} = Status1, + Header = proplists:get_value(header, Data1), ok. %% Test that a handler error calls format_status/2. error_format_status(Config) when is_list(Config) -> - ?line error_logger_forwarder:register(), + error_logger_forwarder:register(), OldFl = process_flag(trap_exit, true), State = self(), - ?line {ok, Pid} = gen_event:start({local, my_dummy_handler}), - ?line ok = gen_event:add_sup_handler(my_dummy_handler, dummy1_h, [State]), - ?line ok = gen_event:notify(my_dummy_handler, do_crash), - ?line receive - {gen_event_EXIT,dummy1_h,{'EXIT',_}} -> ok - after 5000 -> - ct:fail(exit_gen_event) - end, + {ok, Pid} = gen_event:start({local, my_dummy_handler}), + ok = gen_event:add_sup_handler(my_dummy_handler, dummy1_h, [State]), + ok = gen_event:notify(my_dummy_handler, do_crash), + receive + {gen_event_EXIT,dummy1_h,{'EXIT',_}} -> ok + after 5000 -> + ct:fail(exit_gen_event) + end, FmtState = "dummy1_h handler state", receive {error,_GroupLeader, {Pid, @@ -926,10 +926,10 @@ error_format_status(Config) when is_list(Config) -> FmtState, _]}} -> ok; Other -> - ?line io:format("Unexpected: ~p", [Other]), + io:format("Unexpected: ~p", [Other]), ct:fail(failed) end, - ?line ok = gen_event:stop(Pid), + ok = gen_event:stop(Pid), process_flag(trap_exit, OldFl), ok. |