diff options
Diffstat (limited to 'lib/stdlib/test')
| -rw-r--r-- | lib/stdlib/test/gen_fsm_SUITE.erl | 2 | ||||
| -rw-r--r-- | lib/stdlib/test/sys_SUITE.erl | 17 | 
2 files changed, 16 insertions, 3 deletions
| diff --git a/lib/stdlib/test/gen_fsm_SUITE.erl b/lib/stdlib/test/gen_fsm_SUITE.erl index 41ee3246f5..a8264e5a84 100644 --- a/lib/stdlib/test/gen_fsm_SUITE.erl +++ b/lib/stdlib/test/gen_fsm_SUITE.erl @@ -124,8 +124,10 @@ start2(Config) when is_list(Config) ->      {ok, Pid0} = gen_fsm:start(gen_fsm_SUITE, [], []),      ok = do_func_test(Pid0),      ok = do_sync_func_test(Pid0), +    MRef = monitor(process,Pid0),      shutdown_stopped =  	gen_fsm:sync_send_all_state_event(Pid0, stop_shutdown), +    receive {'DOWN',MRef,_,_,shutdown} -> ok end,      {'EXIT', {noproc,_}} =  	(catch gen_fsm:sync_send_event(Pid0, hej)), diff --git a/lib/stdlib/test/sys_SUITE.erl b/lib/stdlib/test/sys_SUITE.erl index 3278eb0eb0..fcc4419569 100644 --- a/lib/stdlib/test/sys_SUITE.erl +++ b/lib/stdlib/test/sys_SUITE.erl @@ -219,7 +219,7 @@ spec_proc(Mod) ->  		       {Mod,system_get_state},{throw,fail}},_}} ->  		 ok  	 end, -    ok = sys:terminate(Mod, normal), +    ok = sync_terminate(Mod),      {ok,_} = Mod:start_link(4),      ok = case catch sys:replace_state(Mod, fun(_) -> {} end) of  	     {} -> @@ -228,7 +228,7 @@ spec_proc(Mod) ->  		       {Mod,system_replace_state},{throw,fail}},_}} ->  		 ok  	 end, -    ok = sys:terminate(Mod, normal), +    ok = sync_terminate(Mod),      {ok,_} = Mod:start_link(4),      StateFun = fun(_) -> error(fail) end,      ok = case catch sys:replace_state(Mod, StateFun) of @@ -240,7 +240,18 @@ spec_proc(Mod) ->  	     {'EXIT',{{callback_failed,StateFun,{error,fail}},_}} ->  		 ok  	 end, -    ok = sys:terminate(Mod, normal). +    ok = sync_terminate(Mod). + +sync_terminate(Mod) -> +    P = whereis(Mod), +    MRef = erlang:monitor(process,P), +    ok = sys:terminate(Mod, normal), +    receive +        {'DOWN',MRef,_,_,normal} -> +            ok +    end, +    undefined = whereis(Mod), +    ok.  %%%%%%%%%%%%%%%%%%%%  %% Dummy server | 
