0
Fork 0
mirror of https://github.com/ninenines/cowboy.git synced 2025-07-14 20:30:23 +00:00
Commit graph

603 commits

Author SHA1 Message Date
Loïc Hoguin
a8335c63df
Always dialyze tests and fix some cowboy_req specs 2018-10-31 10:50:57 +01:00
Loïc Hoguin
07078eb47b
Fix a test listener not being stopped 2018-10-31 09:25:19 +01:00
Loïc Hoguin
122faedc25
Initial support for the PROXY protocol header
Depend on Ranch master for now since it isn't in any release yet.
2018-10-30 23:30:54 +01:00
Loïc Hoguin
a002df4560
Fix the sys trap_exit tests
The processes go down slower now so that caused intermittent
issues.
2018-10-28 17:11:52 +01:00
Loïc Hoguin
d4129e6305
Exit gracefully on parent exit/sys:terminate/2,3 2018-10-28 10:20:43 +01:00
Loïc Hoguin
e1d970b5eb
Switch cowboy_http2 to the new cow_http2_machine
The new module is a merge of the Cowboy and Gun HTTP/2
state machines. Using a common code will help future
developments rather than duplicating the work.

A notable change is in how streams are terminated
when the handler stops before the body is sent. The
cowboy_stream:terminate function is now called only
after the body has been sent fully (or the stream
is reset in-between), not when the stop command is
returned. This will most likely have an impact on
metrics but will be closer to reality.

I had to comment a broken test in rfc7231_SUITE that
was cheating, cheating is no longer possible.

This depends on Cowlib master for the time being. A
new Cowlib version will be released once both Cowboy
and Gun are ported to use cow_http2_machine and I'm
satisfied with it.
2018-10-26 10:23:28 +02:00
Loïc Hoguin
3c8e6cf819
Use gun:info instead of hacks for test socket operations 2018-09-26 17:17:25 +02:00
Loïc Hoguin
bc43fca9e6
Fix stream_handler_SUITE test failures due to compression
We always compress when streaming the body back to the client
regardless of the size actually streamed.
2018-09-23 14:10:04 +02:00
Loïc Hoguin
f63609cb9c
Correct two tests that introspect the Gun state
It has changed in Gun 1.2.
2018-09-23 14:04:47 +02:00
Loïc Hoguin
a0f8d9b8b8
Rename the HTTP/2 Websocket test suite to rfc8441_SUITE 2018-09-21 16:12:19 +02:00
Loïc Hoguin
f810d8dd64
Add the {active, boolean()} Websocket command
This command is currently not documented. It allows disabling
the reading of incoming data from the socket, and can be used
as a poor man's flow control.
2018-09-21 15:01:57 +02:00
Loïc Hoguin
b56a5a1d60
Do not send a 101 after a final response in switch_protocol 2018-09-12 16:16:29 +02:00
Loïc Hoguin
8390b04f7a
Swap the ws and autobahn test groups to run autobahn last
If there's an error it makes sense to have feedback as early
as possible.
2018-09-11 14:45:41 +02:00
Loïc Hoguin
8404b1c908
Add a commands-based interface to Websocket handlers
This feature is currently experimental. It will become the
preferred way to use Websocket handlers once it becomes
documented.

A commands-based interface enables adding commands without
having to change the interface much. It mirrors the interface
of stream handlers or gen_statem. It will enable adding
commands that have been needed for some time but were not
implemented for fear of making the interface too complex.
2018-09-11 14:33:58 +02:00
Loïc Hoguin
4b385749f2
Add cowboy_req:read_and_match_urlencoded_body/2,3 2018-09-07 13:56:12 +02:00
Loïc Hoguin
0a5fadc60b
Improve errors for when the ProvideCallback is missing 2018-08-13 17:23:48 +02:00
Loïc Hoguin
ef426e0ff4
Fix the infinity timeout tests
Make sure the test fails when the code is incorrect.
2018-08-13 11:10:49 +02:00
Loïc Hoguin
b0774f7069
Move some test functions off to ct_helper 2018-08-13 11:10:49 +02:00
Bing Han
e9fd2925ae
Fix cancelling undefined settings timer
when settings_timeout is infinity
2018-08-13 11:10:49 +02:00
Loïc Hoguin
0fb68ec07f
Add test cases for cowboy_req:stream_events 2018-06-27 13:40:11 +02:00
Loïc Hoguin
7867e435fe
Fix tests for most recent Gun 2018-06-26 10:32:33 +02:00
Eric Meadows-Jönsson
f08f4610a0
Add streaming without chunking for HTTP/1.1
If content-length is set in the response headers
we can skip chunked transfer-encoding.
2018-06-25 11:44:38 +02:00
Loïc Hoguin
1a6407d8a8
Add a test for an empty host header in rfc7230 2018-06-04 14:33:24 +02:00
Loïc Hoguin
633aa89f00
Fix intermittent test failures in rfc7540_SUITE 2018-05-22 13:05:15 +02:00
Loïc Hoguin
dc58eea9b4
Ensure tests in rfc7540_SUITE can be repeated 2018-05-22 13:04:42 +02:00
Loïc Hoguin
6e00600d7d
Fix intermittent failure of max_frame_size_sent test 2018-05-20 18:17:49 +02:00
Loïc Hoguin
338b1ca3f7
Remove two broken absolute URI tests from old_http_SUITE 2018-05-18 18:46:36 +02:00
Loïc Hoguin
5d1cf36358
Remove the trailer header from HTTP/1.1 response if no TE 2018-05-18 18:38:38 +02:00
Loïc Hoguin
5229d790fb
Don't send transfer-encoding when streaming 204 responses 2018-05-18 18:38:26 +02:00
Loïc Hoguin
07d454bdb7
Improve the limit_requests_keepalive test
We now check that the connection gets closed.
2018-05-18 16:56:54 +02:00
Loïc Hoguin
6c04875111
Fix the ignore_requests_after_response_connection_close test
It was not working at all.
2018-05-18 15:17:07 +02:00
Loïc Hoguin
95710da617
Comment out the origin_form_reject_if_connect test
We don't implement CONNECT yet so we unconditionally return
a 501 for these requests and that makes this test fail.
2018-05-18 15:16:14 +02:00
Loïc Hoguin
2f9ab91cdd
Add more validation of absolute-form request targets 2018-05-18 15:12:31 +02:00
Loïc Hoguin
5cb244eb7a
Remove more old_http_SUITE tests 2018-05-18 10:41:31 +02:00
Loïc Hoguin
753ba2e36d
Remove the set_env test from old_http_SUITE
It duplicated a test in misc_SUITE. Also fix a couple issues
in misc_SUITE including a test that was not being executed.
2018-05-17 21:04:40 +02:00
Loïc Hoguin
36b32194b7
Remove the parse_host test from old_http_SUITE
It seems to just be a duplicate of something we now have
in Cowlib.
2018-05-17 21:02:54 +02:00
Loïc Hoguin
fb5a261614
Move a router test from old_http_SUITE to cowboy_router 2018-05-17 17:53:16 +02:00
Loïc Hoguin
0254c80c33
Move timeout tests from old_http_SUITE to http_SUITE
Also fix the idle_timeout test which was producing
an extra crash log.
2018-05-17 17:41:55 +02:00
Loïc Hoguin
fd2643b017
Remove more tests from old_http_SUITE which exist elsewhere 2018-05-17 16:47:02 +02:00
Loïc Hoguin
3d35319112
Remove/convert tests about request body from old_http_SUITE 2018-05-17 16:23:33 +02:00
Loïc Hoguin
9ee8904cc6
Remove a broken test from loop_handler_SUITE
The feature was removed in Cowboy 2.0. An alternative to obtain
the same behavior will be introduced as cowboy_req:read_body_async/1.
2018-05-17 13:39:35 +02:00
Loïc Hoguin
619273e10e
Speed up testing large static files, 32MB instead of 512MB 2018-05-17 11:35:08 +02:00
Loïc Hoguin
aca57c2e33
Make examples_SUITE runs nearly twice faster 2018-05-17 11:27:52 +02:00
Loïc Hoguin
827bd8c1c9
Increase a timeout to make some slower tests pass 2018-05-16 14:04:58 +02:00
Loïc Hoguin
ae6c787062
Honor the SETTINGS_ENABLE_PUSH from clients
This fixes curl when fetching resources that use push.
2018-05-16 11:00:25 +02:00
Loïc Hoguin
204fa12df8
Run h2spec over TCP instead of TLS 2018-05-16 10:50:09 +02:00
Loïc Hoguin
d732e74dd5
Use default port when not given in :authority 2018-05-16 10:42:25 +02:00
Loïc Hoguin
859137e3b0
Add a test suite for RFC8297
Not much to test but heh.
2018-05-07 13:05:50 +02:00
Loïc Hoguin
3ebd01805f
Fix some intermittent test issues in rfc7540 2018-04-30 14:23:38 +02:00
Loïc Hoguin
7d4791b32c
Fix some rfc7540 tests that had an empty :path 2018-04-30 13:48:34 +02:00