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
Loïc Hoguin
658620019c
Reduce the time we wait during h2spec requests
2018-04-30 13:48:09 +02:00
Loïc Hoguin
8d1f468ac0
Reject HTTP/2 requests with a body size different than content-length
2018-04-30 13:47:33 +02:00
Loïc Hoguin
17349fafc2
Add tests for rejecting streams depending on themselves
2018-04-29 20:32:36 +02:00
Loïc Hoguin
84b4128d06
Receive and ignore HTTP/2 request trailers if any
...
This is a first step toward properly supporting request trailers.
2018-04-29 17:39:48 +02:00
Loïc Hoguin
2db5ffbf84
Add SETTINGS ack timeout and option settings_timeout
2018-04-28 11:00:50 +02:00
Loïc Hoguin
add71bfb7e
Fix intermittent test failures for rfc7540
2018-04-28 00:53:12 +02:00
Loïc Hoguin
5d5a00c863
Fix an rfc7540 test to have a different error reason
2018-04-27 20:19:02 +02:00
Loïc Hoguin
9a29aea148
Add options controlling maximum h2 frame sizes
2018-04-27 17:58:37 +02:00
Loïc Hoguin
d38d86c4a9
Add options controlling initial control flow windows
2018-04-26 22:08:05 +02:00
Loïc Hoguin
7373822b86
Add the max_concurrent_streams h2 option
2018-04-25 21:32:58 +02:00
Loïc Hoguin
8f4adf437c
Add options to control h2's SETTINGS_HEADER_TABLE_SIZE
2018-04-25 16:55:52 +02:00
Loïc Hoguin
8b9a09c9fe
HTTP/2 informational responses don't end the stream
2018-04-23 15:49:34 +02:00
Loïc Hoguin
29234292e0
Add a Websocket test with 3000 connections
...
To ensure the connections are not limited by max_connections.
2018-04-17 18:54:47 +02:00
Loïc Hoguin
bbfc1569cc
Add initial implementation of Websocket over HTTP/2
...
Using the current draft:
https://tools.ietf.org/html/draft-ietf-httpbis-h2-websockets-01
2018-04-04 17:23:37 +02:00
Kirill Kinduk
4c34774b7e
Add max_frame_size option for websocket handlers
...
Option allows to limit a frame by size before decoding its payload.
LH: I have added a test for when the limit is reached on a nofin
fragmented frame (the last commit addressed that case but it had
no test). I have fixed formatting and other, and changed the
default value to infinity since it might otherwise be incompatible
with existing code. I also added documentation and a bunch of other
minor changes.
2018-03-28 16:58:02 +02:00
Loïc Hoguin
5f0123eddb
Add the remaining sys tests
2018-03-27 23:03:26 +02:00
Loïc Hoguin
9f9bd5ef56
Add more sys tests
2018-03-27 00:58:15 +02:00
Loïc Hoguin
5964273cc4
Fix the flushing of messages when switching to Websocket
...
We now flush messages that are specific to cowboy_http only.
Stream handlers should also flush their own specific messages
if necessary, although timeouts will be flushed regardless
of where they originate from.
Also renames the http_SUITE to old_http_SUITE to distinguish
new tests from old tests. Most old tests need to be removed
or converted eventually as they're legacy tests from Cowboy 1.0.
2018-03-26 18:53:07 +02:00
Loïc Hoguin
4d5174632c
Add initial support for system messages in cowboy_loop
2018-03-23 18:33:16 +01:00
Loïc Hoguin
21c9c66971
Merge the two separate receive loops in cowboy_websocket
...
Also rename a bunch of functions to make the code easier to read.
2018-03-23 16:32:53 +01:00
Bartek Walkowicz
2131709328
Add case for handling infinity for idle/request_timeout
...
Currently cowboy assumes that idle_timeout or request_timeout is
a number and always starts timers. Similar situation takes place
in case of preface_timeout for http2. This commit adds case for
handling infinity as a timeout, allowing to not start mentioned
timers.
2018-03-14 17:15:06 +01:00
Loïc Hoguin
f9092126fa
Handle system messages in cowboy_websocket
2018-03-13 11:19:13 +01:00
Loïc Hoguin
b9c8d86502
Handle supervisor calls properly everywhere
2018-03-13 10:40:14 +01:00
Loïc Hoguin
a89732e8e0
Initial work on the sys_SUITE
...
There's already tests failing and quite some refactoring to be
done to make some things easier to test or fix issues.
2018-03-12 16:52:02 +01:00
Loïc Hoguin
e4f1c332a3
Add a test suite for RFC7538; update Cowlib to 2.2.0
...
This adds the 308 status code and fixes a few small
parsing bugs.
2018-03-05 16:48:56 +01:00
Loïc Hoguin
19054e40e0
Fix crash in cowboy_http2 when content-length is invalid
2018-02-28 16:18:29 +01:00
Loïc Hoguin
482de55a96
Fix a miscount of output flow control window for HTTP/2
...
The miscount occurred because of a faulty iolist split function.
The bug should now be corrected, a PropEr test has been added
and a regression test has also been added.
2018-01-23 16:14:18 +01:00
Loïc Hoguin
3a7b411143
Don't crash in delete_resp_header if no resp headers are set
2018-01-22 14:00:05 +01:00
Paul Fisher
82cd22a88b
Allow colon within path segments
...
Allow `cowboy_router:compile` to handle colon characters within
path segments, rather than exiting with `badarg`. This is allowed
via RFC 7230 2.7 -> [RFC 3986 3.3](https://tools.ietf.org/html/rfc3986#section-3.3 ):
```
segment = *pchar
segment-nz = 1*pchar
segment-nz-nc = 1*( unreserved / pct-encoded / sub-delims / "@" )
; non-zero-length segment without any colon ":"
pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
```
2018-01-16 11:24:49 +01:00
Loïc Hoguin
eafca21198
Fix HTTP/1.1 pipelining
...
Cases where a request body was involved could sometimes
fail depending on timing. Also fix all of the old
http_SUITE tests.
2017-12-12 11:37:48 +01:00
Loïc Hoguin
01e13c0846
Fix how we require HTTP/1.0 from Gun in rfc7231_SUITE
2017-12-11 17:43:02 +01:00