소스 검색

test(sys_mon): add test for closed port

Thales Macedo Garitezi 4 년 전
부모
커밋
427866f8ad
1개의 변경된 파일15개의 추가작업 그리고 0개의 파일을 삭제
  1. 15 0
      apps/emqx/test/emqx_sys_mon_SUITE.erl

+ 15 - 0
apps/emqx/test/emqx_sys_mon_SUITE.erl

@@ -125,6 +125,16 @@ t_sys_mon(_Config) ->
               validate_sys_mon_info(PidOrPort, SysMonName, ValidateInfo, InfoOrPort)
       end, ?INPUTINFO).
 
+%% Existing port, but closed.
+t_sys_mon_dead_port(_Config) ->
+    process_flag(trap_exit, true),
+    Port = dead_port(),
+    {PidOrPort, SysMonName, ValidateInfo, InfoOrPort} =
+        {self(), busy_port,
+         fmt("busy_port warning: suspid = ~p, port = ~p",
+             [self(), Port]), Port},
+    validate_sys_mon_info(PidOrPort, SysMonName, ValidateInfo, InfoOrPort).
+
 t_sys_mon2(_Config) ->
     ?SYSMON ! {timeout, ignored, reset},
     ?SYSMON ! {ignored},
@@ -156,3 +166,8 @@ some_function(Parent, _Arg2) ->
         stop ->
             ok
     end.
+
+dead_port() ->
+    Port = erlang:open_port({spawn, "ls"}, []),
+    catch exit(Port, kill),
+    Port.