aboutsummaryrefslogtreecommitdiffstats
path: root/test/gun_SUITE.erl
AgeCommit message (Collapse)Author
2019-09-22Add Socks5->HTTP/2 testsLoïc Hoguin
Also consolidate the ALPN code in the tls_handshake state rather than doing it in CONNECT/Socks separately. Also improves the origin tests by sending a message once the handshake is completed instead of having timeouts.
2019-09-05Implement graceful shutdownLoïc Hoguin
The graceful shutdown is implemented through a new 'closing' state. This state is entered under different circumstances depending on the protocol. The gun:shutdown/1 function is now implemented and documented. It allows shutting down the connection gracefully regardless of the current state of the connection and for all protocols. The behavior is entirely dependent on the protocol. For HTTP/1.1 the connection stays up only until after the current stream is complete; other streams are immediately canceled. For HTTP/2 a GOAWAY frame is sent and existing streams continue to be processed. The connection is closed after all streams are processed and the server's GOAWAY frame is received. For Websocket a close frame is sent. The connection is closed when receiving the server's close frame. In all cases the closing_timeout option defines how long we wait, as a maximum, before closing the connection after the graceful shutdown was started. The graceful shutdown is also initiated when the owner process goes away; when sending an HTTP/1.1 request with the connection: close header; when receiving an HTTP/1.1 response with the connection: close header; when receiving an HTTP/1.0 response without a connection header; when the server sends a GOAWAY HTTP/2 frame; or when we send or receive a Websocket close frame. Along with these changes, the gun:ws_send/2 function now accepts a list of frames as argument. Those frames may include a close frame that initiates the graceful shutdown.
2019-08-07Enable nodelay to a test failing intermittentlyLoïc Hoguin
2019-08-07Timeout options tests taking long is not a failureLoïc Hoguin
2019-08-06Make gun_SUITE parallel and add retries on WindowsLoïc Hoguin
On Windows the timings can be flaky. It's better to retry a few times rather than fail immediately.
2019-07-27Add the retry_fun option for different backoff strategiesLoïc Hoguin
2019-07-27Postpone operations until connectedTony Han
2019-07-25Rename ws_echo test handler to ws_echo_hLoïc Hoguin
2019-07-22Split domain lookup/connect/TLS handshake and add eventsLoïc Hoguin
This changes the way we connect to servers entirely. We now have three states when connecting (domain_lookup, connect and tls_handshake when applicable) and as a result three corresponding timeout options. Each state has a start/end event associated and the event data was tweaked to best match each event. Since the TLS handshake is separate, the transport_opts option was also split into two: tcp_opts and tls_opts.
2019-04-26Rename owner_gone into owner_downLoïc Hoguin
2019-04-26Add the supervise option to start without supervisorLoïc Hoguin
2019-04-26No longer error out when the owner exitsLoïc Hoguin
No need to have the error repeated in the logs by the Gun process.
2019-04-25Fix failures resulting from connect error delays on WindowsLoïc Hoguin
On Windows when the connection is refused the OS will retry 3 times before giving up, with a 500ms delay between tries. This adds approximately 1 second to connection failures.
2019-01-10Tweak another timeoutLoïc Hoguin
2019-01-10Tweak more test timeoutsLoïc Hoguin
2019-01-10Tweak timeouts to fix intermittent failuresLoïc Hoguin
2019-01-09Add function gun:stream_info/2Loïc Hoguin
2019-01-06Lowercase header names automatically and accept more typesLoïc Hoguin
Header names can now be provided as binary, string or atom and Gun no longer requires them to be in lowercase. The list of headers can also be provided as a map as well.
2019-01-06Don't output unrelated errors in successful testsLoïc Hoguin
We need to close the Gun connection to avoid owner_gone errors.
2019-01-06Add a timeout to prevent an intermittent failureLoïc Hoguin
2019-01-06Fix KilledStreams value for HTTP for connection: close responsesLoïc Hoguin
2019-01-05Fix atom hostnamesLoïc Hoguin
2019-01-05Don't send empty data chunksLoïc Hoguin
This was a bug in the case of HTTP/1.1 and an inconvenience in the case of HTTP/2.
2019-01-05Ensure Gun retries connecting immediatelyLoïc Hoguin
2019-01-03Update copyright yearsLoïc Hoguin
2018-12-31Separate request/4,5,6 into headers/4,5 and request/5,6Loïc Hoguin
This cleaner separation gets rid of the implicit body check that was causing issues for many users. Now the body is either given explicitly or it is expected via future gun:data/3 calls.
2018-10-11Make all the gun_SUITE test self-reliableLoïc Hoguin
Some intermittent failures occurred because of trying to connect to google.com or echo.websocket.org.
2018-06-04Update copyright yearsLoïc Hoguin
2018-06-03Change messages to gun_upgrade and gun_ws with stream referenceLoïc Hoguin
2017-12-16Add support for unix socketsmichael-coles
2017-12-14Silence export_all warningsLoïc Hoguin
2017-12-14Change the {gone, Reason} to {shutdown, Reason} plus small fixesLoïc Hoguin
The reason for this change is to avoid annoying supervisor logs when SASL logging is enabled.
2017-10-06Don't error out when the owner is gone normallyLoïc Hoguin
2017-08-14Allow an infinity keepalive value1.0.0-pre.4Loïc Hoguin
This disables the keepalive mechanism entirely.
2017-08-11Add missing Websocket clause detecting owner is goneLoïc Hoguin
2017-08-11Fix testsLoïc Hoguin
2017-05-01Add gun:info/11.0.0-pre.3Loïc Hoguin
So far only for getting the socket ip and port on the local side. More values may be added later on.
2017-05-01Add transform_header_name http option.Gustaf Sjoberg
2017-05-01Add support for choosing a process to reply toAndrei Nesterov
2017-04-30Monitor owner and terminate when it diesJuan Facorro
2017-04-30Add missing gun_SUITE test suiteLoïc Hoguin
Forgot to commit it earlier. My bad!