diff options
author | Rickard Green <[email protected]> | 2016-08-08 17:13:24 +0200 |
---|---|---|
committer | Rickard Green <[email protected]> | 2016-08-29 16:26:25 +0200 |
commit | 0e04e76df2ea71e2e2e116afef04c497d84b1024 (patch) | |
tree | ebbe9789b9cb52561d885c49968d2c00d2ae52ce /lib/kernel/test | |
parent | 9d0638216d35ca0f21c1eea20f8daa3992ac4f71 (diff) | |
download | otp-0e04e76df2ea71e2e2e116afef04c497d84b1024.tar.gz otp-0e04e76df2ea71e2e2e116afef04c497d84b1024.tar.bz2 otp-0e04e76df2ea71e2e2e116afef04c497d84b1024.zip |
Perform check_process_code while process is executing dirty
Diffstat (limited to 'lib/kernel/test')
-rw-r--r-- | lib/kernel/test/init_SUITE.erl | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/lib/kernel/test/init_SUITE.erl b/lib/kernel/test/init_SUITE.erl index b96de94427..2b59eb2bfe 100644 --- a/lib/kernel/test/init_SUITE.erl +++ b/lib/kernel/test/init_SUITE.erl @@ -365,7 +365,7 @@ restart(Config) when is_list(Config) -> %% Ok, the node is up, now the real test test begins. erlang:monitor_node(Node, true), SysProcs0 = rpc:call(Node, ?MODULE, find_system_processes, []), - [InitPid, PurgerPid, LitCollectorPid] = SysProcs0, + [InitPid, PurgerPid, LitCollectorPid, DirtyCodePid] = SysProcs0, InitPid = rpc:call(Node, erlang, whereis, [init]), PurgerPid = rpc:call(Node, erlang, whereis, [erts_code_purger]), Procs = rpc:call(Node, erlang, processes, []), @@ -381,7 +381,7 @@ restart(Config) when is_list(Config) -> ok = wait_restart(30, Node), SysProcs1 = rpc:call(Node, ?MODULE, find_system_processes, []), - [InitPid1, PurgerPid1, LitCollectorPid1] = SysProcs1, + [InitPid1, PurgerPid1, LitCollectorPid1, DirtyCodePid1] = SysProcs1, %% Still the same init process! InitPid1 = rpc:call(Node, erlang, whereis, [init]), @@ -401,6 +401,14 @@ restart(Config) when is_list(Config) -> LitCollectorP = pid_to_list(LitCollectorPid1) end, + %% and same dirty process code checker process! + case DirtyCodePid of + undefined -> undefined = DirtyCodePid1; + _ -> + DirtyCodeP = pid_to_list(DirtyCodePid), + DirtyCodeP = pid_to_list(DirtyCodePid1) + end, + NewProcs0 = rpc:call(Node, erlang, processes, []), NewProcs = NewProcs0 -- SysProcs1, case check_processes(NewProcs, MaxPid) of @@ -424,7 +432,8 @@ restart(Config) when is_list(Config) -> -record(sys_procs, {init, code_purger, - literal_collector}). + literal_collector, + dirty_proc_checker}). find_system_processes() -> find_system_procs(processes(), #sys_procs{}). @@ -432,7 +441,8 @@ find_system_processes() -> find_system_procs([], SysProcs) -> [SysProcs#sys_procs.init, SysProcs#sys_procs.code_purger, - SysProcs#sys_procs.literal_collector]; + SysProcs#sys_procs.literal_collector, + SysProcs#sys_procs.dirty_proc_checker]; find_system_procs([P|Ps], SysProcs) -> case process_info(P, initial_call) of {initial_call,{otp_ring0,start,2}} -> @@ -444,6 +454,9 @@ find_system_procs([P|Ps], SysProcs) -> {initial_call,{erts_literal_area_collector,start,0}} -> undefined = SysProcs#sys_procs.literal_collector, find_system_procs(Ps, SysProcs#sys_procs{literal_collector = P}); + {initial_call,{erts_dirty_process_code_checker,start,0}} -> + undefined = SysProcs#sys_procs.dirty_proc_checker, + find_system_procs(Ps, SysProcs#sys_procs{dirty_proc_checker = P}); _ -> find_system_procs(Ps, SysProcs) end. |