From a309f196d15d3045d2e70b2d7e23858f47adb7df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Mon, 13 May 2019 14:04:34 +0200 Subject: Add the terminate event --- test/event_SUITE.erl | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'test/event_SUITE.erl') diff --git a/test/event_SUITE.erl b/test/event_SUITE.erl index 50a1ce2..05bff8c 100644 --- a/test/event_SUITE.erl +++ b/test/event_SUITE.erl @@ -115,6 +115,18 @@ disconnect(_) -> } = do_receive_event(disconnect), gun:close(Pid). +terminate(_) -> + doc("Confirm that the terminate event callback is called on terminate."), + Self = self(), + Opts = #{event_handler => {?MODULE, Self}}, + {ok, Pid} = gun:open("localhost", 12345, Opts), + gun:close(Pid), + #{ + state := not_connected, + reason := shutdown + } = do_receive_event(terminate), + ok. + %% Internal. do_receive_event(Event) -> @@ -128,6 +140,9 @@ do_receive_event(Event) -> %% gun_event callbacks. init(EventData, Pid) -> + %% We enable trap_exit to ensure we get a terminate event + %% when we call gun:close/1. + process_flag(trap_exit, true), Pid ! {?FUNCTION_NAME, EventData}, Pid. @@ -142,3 +157,7 @@ connect_end(EventData, Pid) -> disconnect(EventData, Pid) -> Pid ! {?FUNCTION_NAME, EventData}, Pid. + +terminate(EventData, Pid) -> + Pid ! {?FUNCTION_NAME, EventData}, + Pid. -- cgit v1.2.3