aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/handlers/ws_init_h.erl5
-rw-r--r--test/ws_SUITE.erl1
-rw-r--r--test/ws_handler_SUITE.erl8
3 files changed, 13 insertions, 1 deletions
diff --git a/test/handlers/ws_init_h.erl b/test/handlers/ws_init_h.erl
index db5307b..bbe9ef9 100644
--- a/test/handlers/ws_init_h.erl
+++ b/test/handlers/ws_init_h.erl
@@ -36,7 +36,10 @@ do_websocket_init(State=reply_many_hibernate) ->
do_websocket_init(State=reply_many_close) ->
{[{text, "Hello"}, close], State};
do_websocket_init(State=reply_many_close_hibernate) ->
- {[{text, "Hello"}, close], State, hibernate}.
+ {[{text, "Hello"}, close], State, hibernate};
+do_websocket_init(State=reply_trap_exit) ->
+ Text = "trap_exit: " ++ atom_to_list(element(2, process_info(self(), trap_exit))),
+ {[{text, Text}, close], State, hibernate}.
websocket_handle(_, State) ->
{[], State}.
diff --git a/test/ws_SUITE.erl b/test/ws_SUITE.erl
index 9abeaca..126d8c6 100644
--- a/test/ws_SUITE.erl
+++ b/test/ws_SUITE.erl
@@ -341,6 +341,7 @@ ws_first_frame_with_handshake(Config) ->
{ok, <<1:1, 0:3, 1:4, 0:1, 5:7, "Hello">>} = gen_tcp:recv(Socket, 0, 6000),
ok.
+%% @todo Move these tests to ws_handler_SUITE.
ws_init_return_ok(Config) ->
doc("Handler does nothing."),
{ok, Socket, _} = do_handshake("/ws_init?ok", Config),
diff --git a/test/ws_handler_SUITE.erl b/test/ws_handler_SUITE.erl
index 435600f..362b03a 100644
--- a/test/ws_handler_SUITE.erl
+++ b/test/ws_handler_SUITE.erl
@@ -50,6 +50,7 @@ init_dispatch(Name) ->
{"/init", ws_init_commands_h, RunOrHibernate},
{"/handle", ws_handle_commands_h, RunOrHibernate},
{"/info", ws_info_commands_h, RunOrHibernate},
+ {"/trap_exit", ws_init_h, RunOrHibernate},
{"/active", ws_active_commands_h, RunOrHibernate},
{"/deflate", ws_deflate_commands_h, RunOrHibernate},
{"/set_options", ws_set_options_commands_h, RunOrHibernate},
@@ -211,6 +212,13 @@ do_many_frames_then_close_frame(Config, Path) ->
{ok, close} = receive_ws(ConnPid, StreamRef),
gun_down(ConnPid).
+websocket_init_trap_exit_false(Config) ->
+ doc("The trap_exit process flag must be set back to false before "
+ "the connection is taken over by Websocket."),
+ {ok, ConnPid, StreamRef} = gun_open_ws(Config, "/trap_exit?reply_trap_exit", []),
+ {ok, {text, <<"trap_exit: false">>}} = receive_ws(ConnPid, StreamRef),
+ ok.
+
websocket_active_false(Config) ->
doc("The {active, false} command stops receiving data from the socket. "
"The {active, true} command reenables it."),