Commit Graph

473 Commits

Author SHA1 Message Date
Cesar Blum Silveira 5b65117b64 Add functional regression test for 'Connection: keep-alive, upgrade' request header. 2016-11-04 17:54:22 -07:00
Stephen Halter 8591900849 Fix more test failures caused by connection resets
- Avoid sending data that won't be processed.
2016-11-04 16:05:11 -07:00
Stephen Halter b3aca0413c Avoid zero-length writes to flush connection filter stream
- This works around a zero-length write bug in SslStream.
- We already assume connection filter streams auto flush.

#1195
2016-11-04 15:43:35 -07:00
Cesar Blum Silveira 29408956f9 Handle tokens in Transfer-Encoding header (#1181). 2016-10-31 13:57:34 -07:00
Cesar Blum Silveira cc05e36dc6 Fix test failures caused by connection resets (#1167). 2016-10-31 10:21:28 -07:00
Stephen Halter d475d41f71 Fix boundary cases in MemoryPoolIterator.(Try)PeekLong()
- Fix edge case where the iterator is at the very end of a block.
- Fix edge case where one bits where improperly filled in on a right shift.
- Don't use -1 to represent failure. Use bool and an out parameter instead.
2016-10-28 14:51:47 -07:00
Cesar Blum Silveira 1ffad5ca38 Handle multiple tokens in Connection header (#1170). 2016-10-27 12:19:43 -07:00
Nathan Anderson 610601cc6e test fixes and whitespace changes to generated code 2016-10-20 15:23:03 -07:00
Cesar Blum Silveira fff0adeaaf Faster response Content-Length parsing. 2016-10-18 15:57:40 -07:00
Cesar Blum Silveira 78584799a4 Separate request rejection from bad request state setting. 2016-10-17 15:16:50 -07:00
Mike Harder f1071dea50 Set StatusCode before disposing HttpContext (#876) 2016-10-17 15:16:43 -07:00
Pranav K 2876f82521 Updating to netcoreapp1.1 2016-10-13 11:19:16 -07:00
Pranav K e2f11ebd38 Revert "Updating to netcoreapp1.1"
This reverts commit dd23f24241.
2016-10-12 16:08:56 -07:00
Pranav K dd23f24241 Updating to netcoreapp1.1 2016-10-12 13:45:43 -07:00
Cesar Blum Silveira bf94f8526a Remove TCP Loopback Fast Path code (#1147). 2016-10-12 11:41:57 -07:00
Cesar Blum Silveira ffc3eb3afd HEAD response can include Content-Length header. 2016-10-12 11:38:18 -07:00
Cesar Blum Silveira 7ee13875b1 Reduce delay variability in KeepAliveTimeoutTests.ConnectionKeptAliveBetweenRequests() (#1157). 2016-10-11 16:22:59 -07:00
Cesar Blum Silveira a15b1e2805 Update cached Content-Length when setting raw header. 2016-10-11 13:55:05 -07:00
Cesar Blum Silveira f8813a600d Handle response content length mismatches (#175). 2016-10-11 13:25:22 -07:00
Pranav K 8c103f0f23 Revert "Revert to Microsoft.NETCore.App to 1.0.0"
This reverts commit f1f66448f4.
2016-10-10 19:23:37 -07:00
Cesar Blum Silveira 3177ba0aae Wait for frame loop completion to dispose connection stream (#1156). 2016-10-10 10:16:03 -07:00
Cesar Blum Silveira 663b825d97 Merge branch 'benaadams/codecoverage' into dev 2016-10-06 15:01:43 -07:00
Kristian Hellang 03f8a7a217 Use HeaderUtilities.FormatDate in DateHeaderValueManager (#1132) 2016-10-06 11:56:49 -07:00
Cesar Blum Silveira 2c94884da9 Include address in error message when address already in use (#1086). 2016-10-05 14:23:09 -07:00
Ben Adams 2708b8a534 Add CodeCoverage to tests 2016-10-05 21:42:31 +01:00
Pranav K f1f66448f4 Revert to Microsoft.NETCore.App to 1.0.0 2016-10-05 12:03:46 -07:00
Pranav K 91497621c9 Updating partner package versions 2016-10-03 19:59:39 -07:00
Cesar Blum Silveira a2439105ae Refactor request line validation and error reporting (#1116). 2016-10-03 16:54:51 -07:00
Cesar Blum Silveira 4117ad8a1e Refactor non-body response handling.
- Add functional tests
- Remove BadHttpResponse, ResponseRejectionReasons and TestFrameProtectedMembers
- Chunk non-keepalive HTTP/1.1 responses
- Set _canHaveBody to true when StatusCode == 101
- Add test to check that upgraded connections are always closed when the app
  is done
- Log writes on responses to HEAD requests only once.
2016-10-03 16:46:59 -07:00
Ben Adams e7e6b896ba Don't emit TE header or body for non-body responses 2016-10-03 15:54:14 -07:00
Mikael Mengistu 12adc7de9d Refactored to use the fields from the HttpMethods class
* Reacting to PR comments
2016-09-29 12:19:26 -07:00
Cesar Blum Silveira 09fda749b0 Don't reset frame state when connection is aborted (#1103). 2016-09-28 15:06:22 -07:00
Cesar Blum Silveira 73656f6503 Assume zero length on non-keepalive requests without Content-Length or Transfer-Encoding (#1104). 2016-09-28 12:30:53 -07:00
Cesar Blum Silveira 0312da7df3 Add request headers timeout (#1110). 2016-09-27 17:08:02 -07:00
Cesar Blum Silveira 375e8b7022 Change context relationships from inheritance to composition. 2016-09-27 11:53:06 -07:00
Cesar Blum Silveira 49ff98f8cb More specific response status codes for errors (#653).
- 414 when request line exceeds size limit
- 431 when request headers exceed size or count limits
- 505 when request line contains unsupported HTTP version
2016-09-22 12:13:14 -07:00
Stephen Halter 63509b9e10 Make FrameRequestStream.CopyToAsync(...) copyless
- Add tests for when the CopyToAsync destinationStream throws.
- Add test to verify the destination stream sees the same array written to by
  the producer.
2016-09-20 11:54:58 -07:00
Cesar Blum Silveira afa89b3993 Change SkipReason for ThreadCountTests on OS X. 2016-09-16 09:09:26 -07:00
Cesar Blum Silveira 1a273f5a34 Improve keep-alive timeout.
- Track time more accurately
- Control timeout in Connection instead of Frame
2016-09-14 20:57:16 -07:00
Stephen Halter 84efe624a6 Fix deadlock in HttpsTests
- The xunit synccontext was saving us again
2016-09-12 11:06:29 -07:00
Stephen Halter 39bd49ea1a Avoid blocking the MockLibuv loop with test code
- This allows for a graceful shutdown with dotnet test -Parallel None
- By default, the xunit synccontext will dispatch automatically off
  the KestrelThread, but it's best not to rely on this behavior.
2016-09-12 11:06:29 -07:00
Cesar Blum Silveira 8c513402a3 Always call ConsumingComplete() with furthest examined position (#1095). 2016-09-10 20:05:14 -07:00
Pavel Krymets c777a9efea Use TaskCache class from Microsoft.Extensions.TaskCache.Sources (#1089)
Instead of Task.FromResult(0)
2016-09-09 15:57:33 -07:00
Cesar Blum Silveira 5b2065230d Fix failing keep-alive timeout tests. 2016-09-07 20:58:00 -07:00
Cesar Blum Silveira f2085b1968 Add keep-alive timeout (#464). 2016-09-06 12:48:47 -07:00
Cesar Blum Silveira 19f8958fa8 Move TestServer to shared directory. 2016-09-06 12:47:24 -07:00
Cesar Blum Silveira 5512516ee8 Remove commented test. 2016-09-01 17:18:59 -07:00
Stephen Halter 1ecef8094a Make Kestrel's response buffer limit configurable 2016-08-30 16:01:42 -07:00
Stephen Halter acfcafb6e1 Ensure MockLibuv.OnPostTask doesn't complete too early 2016-08-29 20:53:00 -07:00
Stephen Halter 0742d113be Make all calls to ThreadPool.QueueUserWorkItem through IThreadPool
- This allows SocketOutputTests to cause QUWI to exec synchronously
- To avoid allocations, the logger can't be captured making it "unsafe"
2016-08-29 20:52:47 -07:00
Stephen Halter 4587a0fc95 Prevent possible deadlocks when using MockLibuv.OnPostTask 2016-08-29 12:14:19 -07:00
Cesar Blum Silveira b6a177ef0b Test for categoryName passed to ILoggerFactory.CreateLogger() in KestrelServer.ctor() (#797) 2016-08-26 15:37:15 -07:00
Stephen Halter 7bd30ea693 Log all startup errors in KestrelServer 2016-08-18 14:52:26 -07:00
Stephen Halter 972be6e8c1 Disable automatic chunking for all non keep-alive requests
- Fixes a bug where Upgrade requests (e.g. WebSockets) would be chunked
- Allows chunking to be disabled by setting "Connection: close" on the response
2016-08-17 12:39:18 -07:00
Stephen Halter 16fbb94c44 Automatically chunk and set 0 Content-Length for non keep-alive responses 2016-08-15 16:27:54 -07:00
Stephen Halter 5f4e60bf8d Always set "Connection: close" header for non keep-alive responses 2016-08-15 16:27:54 -07:00
Stephen Halter 8f4cc3003b Improve SocketOutputTests
- This should increase reliability/determinism by removing timeouts.
2016-08-15 10:58:32 -07:00
Cesar Blum Silveira 08a91f17bf Call OnStarting and OnCompleted callbacks in LIFO order (#1042). 2016-08-10 14:52:05 -07:00
Cesar Blum Silveira 5181e4196c Trace call to _uv_unsafe_async_send in MockLibuv. 2016-08-09 18:26:10 -07:00
Cesar Blum Silveira 08f98f4790 Add header limit options (#475). 2016-08-09 12:31:39 -07:00
Pranav K 2f9bf9bb87 Updating to Moq \ Castle.Core that does not require imports 2016-08-08 14:35:04 -07:00
Cesar Blum Silveira f2fa8b5660 Add functional test. 2016-08-08 11:58:37 -07:00
Cesar Blum Silveira a5aacd6307 Throw when setting OnStarting after response has already started (#806). 2016-08-08 11:38:06 -07:00
Cesar Blum Silveira 55f409b38b Fix hanging functional tests. 2016-08-05 16:46:34 -07:00
Cesar Blum Silveira fa41588779 Move server start failure test in MaxRequestLineSizeTests to KestrelServerTests. 2016-08-04 15:43:53 -07:00
Cesar Blum Silveira b8f21bee03 Update warning code for obsolete property in #pragma. 2016-08-04 14:05:23 -07:00
Stephen Halter 9727a4db86 Improve the performance of connection filters
- Buffer connection filter input less by using ProducingStart/Complete
- Simplify FilteredStreamAdapter
2016-08-03 16:45:39 -07:00
Cesar Blum Silveira 8836eec7d8 Limit request line length (#784). 2016-08-03 15:39:16 -07:00
Stephen Halter dfe12223b8 Ensure HTTPS handshake errors aren't logged on socket close 2016-08-03 15:21:57 -07:00
Stephen Halter 1020d69171 Better logging for connection errors during HTTPS handshake 2016-08-03 11:15:15 -07:00
Cesar Blum Silveira 20c1bb567d Move TestConnection to the Microsoft.AspNetCore.Testing namespace. 2016-08-02 12:47:06 -07:00
Cesar Blum Silveira 5876e1983a Move TestConnection to shared directory. 2016-08-02 12:30:53 -07:00
Cesar Blum Silveira 138f23b246 Remove TestServer dependency from TestConnection. 2016-08-02 12:26:17 -07:00
Mike Harder 4ece3f4b68 Change "String." to "string." to match coding convention 2016-08-01 11:09:31 -07:00
Stephen Halter 00a540dcb8 Merge branch 'benaadams/more-block-collect-info' into dev 2016-07-28 16:51:35 -07:00
Stephen Halter 5d6da35cb9 Add test verifying a chunked response can be written manually 2016-07-28 16:43:23 -07:00
Stephen Halter 3a67cb9df5 Merge branch 'benaadams/enum-rather-than-string' into dev 2016-07-25 10:30:33 -07:00
Ben Adams 0ab04d7e73 Tests to makes sure known strings are interned 2016-07-23 01:07:04 +01:00
Ben Adams 0a1ea124ee Use HttpVersionType enum rather than string compare 2016-07-22 21:34:49 +01:00
David Fowler 0e7967a7fc Allocate things per KestrelThread instead of per listener
- Moved things that have loop affinity to KestrelThread like
WriteReqPool, MemoryPool and the ConnectionManager
- Changed on the listeners to only kill the ListenSocket, not the
connections on dispose
- Moved connection disposal to KestrelThread.Stop
- Simplify the connection manager logic so it's possible to walk and
wait in a single call
2016-07-21 22:17:18 -07:00
Cesar Blum Silveira 3c0e0f8d88 Always throw same exception type on read after connection error (#975). 2016-07-21 16:33:56 -07:00
Ben Adams 7b8abf5a3e Improved Memoryblock tracking
Also fixed 3 tests that weren't handling block properly
2016-07-21 01:13:27 +01:00
Cesar Blum Silveira bdf9f8dd4e Wait for connection in RequestTests.ConnectionResetAbortsRequest (#978). 2016-07-18 13:29:42 -07:00
Mike Harder 41e50ba688 Enable all tests in HttpsConnectionFilterTests to run on all platforms
- Move HttpClientSlim.cs to test\shared
- Change HttpClientSlim to static class to simplify calling code
- Add HttpClientSlim.PostAsync()
2016-07-18 12:38:19 -07:00
Cesar Blum Silveira 3bb7f4e2c4 Treat ECONNRESET as a connection error (#934). 2016-07-15 14:53:21 -07:00
Stephen Halter fbcb5dcb1b Prevent enumeration of queue during modification in SocketOutputTests 2016-07-15 11:53:54 -07:00
Mike Harder 0c52529b97 Add tests for HTTPS urls to AddressRegistrationTests (#794)
- Added HttpClientSlim, a lightweight version of HttpClient implemented using Socket and SslStream.
2016-07-14 18:35:47 -07:00
Stephen Halter 7e1aa4e1d0 Only test binding to "operational" network interfaces 2016-07-14 16:08:39 -07:00
Mike Harder 2f36c80970 Remove skip condition for IPv6 with scope ID on Linux and Mac (#964)
- Was required to workaround https://github.com/dotnet/corefx/issues/8235 which is now fixed.
2016-07-11 17:53:59 -07:00
Mike Harder 8a43be94ef AddressRegistrationTests should get local IPs from System.Net.NetworkInformation (#796) 2016-07-11 14:40:12 -07:00
Doug Bunting 82a0a99107 One build to rule them all
- well, at least VS and command-line builds will share output
- part of aspnet/Coherence-Signed#277
2016-07-07 12:07:14 -07:00
Cesar Blum Silveira 9f720eda90 Reset frame streams on each request (#940). 2016-07-06 14:57:43 -07:00
Pranav K a09bce0c07 Updating to RTM builds of xunit and Moq 2016-06-30 16:00:39 -07:00
Pranav K de668c2ebd Updating to dev versions
# Conflicts:
#	test/Microsoft.AspNetCore.Server.Kestrel.FunctionalTests/project.json
2016-06-16 10:40:58 -07:00
jacalvar 6b7e27269c Update Json.NET to 9.0.1 2016-06-15 15:08:50 -07:00
Mike Harder 5ecb1f59a4 Limit size of memory buffer when reading request (#304)
- Added property `KestrelServerOptions.MaxRequestBufferSize`
 - Default is 1,048,576 bytes (1MB)
 - If value is null, the size of the request buffer is unlimited.
- Fixed bug in `IConnectionControl.Resume()` where `_socket.ReadStart()` can throw if the socket is already disconnected.
- Made `UvStreamHandle.ReadStop()` idempotent, to match `uv_read_stop()`.
2016-06-13 18:52:20 -07:00
Cesar Blum Silveira 98feee9dbd Combine LargeMultipartUpload and LargeUpload into one test. 2016-06-13 17:55:19 -07:00
N. Taylor Mullen 917c3e0987 Remove direct Microsoft.NETCore.Platforms dependency.
- Microsoft.NETCore.App now pulls this package in.

aspnet/Coherence-Signed#344
2016-06-13 15:29:13 -07:00
Stephen Halter c1dadbd723 Make Bad Request tests more reliable
- Avoid calling write again after the request is already rejected
- Don't try to close a socket from the client if we already expect the server
  to forcefully close the socket
2016-06-07 16:13:29 -07:00
jacalvar b6ceac559a Update Json.NET to 9.0.1-beta1 2016-06-06 21:25:52 -07:00