{"push_id":784812495,"size":18,"distinct_size":18,"ref":"refs/heads/master","head":"f41c09dbb93723d62787e5b3973cd3fc8666fec8","before":"661eb1908cf3a4316e78621cc239270b1a777e78","commits":[{"sha":"4e0542c5554a1072495f6785738428c4a1ef7ed7","author":{"email":"a4d3028640b16b8635f2d7ab9cbb07a71466c3cb@outlook.com","name":"Alexander Köplinger"},"message":"System.IO.Compression: use consistent namespace name for tests\n\nAs per https://github.com/dotnet/corefx/issues/2898 the convention is $(Namespace of Type under Test).Tests\nSome tests were in .Test, this change renames them to .Tests","distinct":true,"url":"https://api.github.com/repos/weshaggard/corefx/commits/4e0542c5554a1072495f6785738428c4a1ef7ed7"},{"sha":"20b14c9e9948310a6f0eb507066411d5e7eab5ce","author":{"email":"ae13e98881be1c223bbdc8defad62f04fd7d8c5e@microsoft.com","name":"Shruti Garg"},"message":"Enabling Testcases for POST/PUT methods","distinct":true,"url":"https://api.github.com/repos/weshaggard/corefx/commits/20b14c9e9948310a6f0eb507066411d5e7eab5ce"},{"sha":"4fac2e86560fe63fa1518ca0863a705f0bf470a9","author":{"email":"44f878afe53efc66b76772bd845eb65944ed8232@hackcraft.net","name":"Jon Hanna"},"message":"Short-circuit on SequenceEqual\n\nShort-circuit to false on both sequences are ICollection<T> and different Count","distinct":true,"url":"https://api.github.com/repos/weshaggard/corefx/commits/4fac2e86560fe63fa1518ca0863a705f0bf470a9"},{"sha":"557c58d13e77bf551ab0c98a469dcba284ca00cb","author":{"email":"44f878afe53efc66b76772bd845eb65944ed8232@hackcraft.net","name":"Jon Hanna"},"message":"Make SequenceEqual tests do all permutations of ICollection or not.","distinct":true,"url":"https://api.github.com/repos/weshaggard/corefx/commits/557c58d13e77bf551ab0c98a469dcba284ca00cb"},{"sha":"959ce5b89b5b2f31f1d15c9e16eef37827a968bd","author":{"email":"94274d0b635748ad8df96c0fc4f19e1ecd3f67e2@microsoft.com","name":"stephentoub"},"message":"Fix TestEnvironmentOfChildProcess to set output encoding\n\nThree issues all conspiring together:\n- On many machines, none of the environment variables would have non-ASCII characters.\n- Some of the Process tests mutate the ambient console encoding on Windows\n- The default standard output encoding on Windows results in Unicode characters getting lost in translation\n\nThe net effect of this is that the test would fail randomly.\n\nThe fix:\n- Adds an environment variable that includes non-ASCII characters to force the issue\n- Adds an xunit attribute to prevent parallelization of the Process tests\n- Forces the test to use UTF8 for the standard output encoding","distinct":true,"url":"https://api.github.com/repos/weshaggard/corefx/commits/959ce5b89b5b2f31f1d15c9e16eef37827a968bd"},{"sha":"bfb3bc685a52e080a9ead2847ed8b7bc50afa092","author":{"email":"7b03f6819b638575f5f50d332b640fa0cce19cac@microsoft.com","name":"VSadov"},"message":"Merge pull request #3097 from JonHanna/short-circuit-on-sequence-equals\n\nShort-circuit on SequenceEqual","distinct":true,"url":"https://api.github.com/repos/weshaggard/corefx/commits/bfb3bc685a52e080a9ead2847ed8b7bc50afa092"},{"sha":"c6f256b076c16e07c956f5af2556fad323bdf7d1","author":{"email":"94274d0b635748ad8df96c0fc4f19e1ecd3f67e2@microsoft.com","name":"Stephen Toub"},"message":"Merge pull request #3102 from stephentoub/start_info_env_test\n\nFix TestEnvironmentOfChildProcess to set output encoding","distinct":true,"url":"https://api.github.com/repos/weshaggard/corefx/commits/c6f256b076c16e07c956f5af2556fad323bdf7d1"},{"sha":"cea65f89fd1b9f67855b9339bba059e33c402458","author":{"email":"94274d0b635748ad8df96c0fc4f19e1ecd3f67e2@microsoft.com","name":"Stephen Toub"},"message":"Merge pull request #3088 from akoeplinger/fix-compression-test-namespace\n\nSystem.IO.Compression: use consistent namespace name for tests","distinct":true,"url":"https://api.github.com/repos/weshaggard/corefx/commits/cea65f89fd1b9f67855b9339bba059e33c402458"},{"sha":"dad1283e7b0cb36c0df03a68dae489eac0ff6d76","author":{"email":"44f878afe53efc66b76772bd845eb65944ed8232@hackcraft.net","name":"Jon Hanna"},"message":"Fully import legacy Join and GroupJoin tests\n\nConvert Join GroupJoin tests imported in #2874 into a more directly XUnit-ian\nstyle.\n\nJoinTests.Join9.Test9 was a duplicate of Join8.Test8 and the case its comment\nsuggests it was meant to cover was covered by Join6.Test6, so removed.","distinct":true,"url":"https://api.github.com/repos/weshaggard/corefx/commits/dad1283e7b0cb36c0df03a68dae489eac0ff6d76"},{"sha":"637e1b607fc16b95f35b71157274b914046efc7c","author":{"email":"94274d0b635748ad8df96c0fc4f19e1ecd3f67e2@microsoft.com","name":"Stephen Toub"},"message":"Merge pull request #3095 from JonHanna/import_join_tests\n\nFully import legacy Join and GroupJoin tests","distinct":true,"url":"https://api.github.com/repos/weshaggard/corefx/commits/637e1b607fc16b95f35b71157274b914046efc7c"},{"sha":"853100ed6f051b3af9eeee8b55e16a60a4703d1e","author":{"email":"ae13e98881be1c223bbdc8defad62f04fd7d8c5e@microsoft.com","name":"Shruti Garg"},"message":"Fixing Review comments Post/Put Testcases","distinct":true,"url":"https://api.github.com/repos/weshaggard/corefx/commits/853100ed6f051b3af9eeee8b55e16a60a4703d1e"},{"sha":"5c8e7cfbc27cf4bed19b2dd4fe025cea12d47492","author":{"email":"94274d0b635748ad8df96c0fc4f19e1ecd3f67e2@microsoft.com","name":"Stephen Toub"},"message":"Merge pull request #3091 from shrutigarg/shgarg3\n\nEnabling Testcases for POST/PUT methods","distinct":true,"url":"https://api.github.com/repos/weshaggard/corefx/commits/5c8e7cfbc27cf4bed19b2dd4fe025cea12d47492"},{"sha":"c13f9100e1659cc9c8b48025f97605e01878b33a","author":{"email":"ef88cdf223e82d966d05894857ed10061f9c24e7@microsoft.com","name":"bartonjs"},"message":"Disable intermittent ExportWithPrivateKey test","distinct":true,"url":"https://api.github.com/repos/weshaggard/corefx/commits/c13f9100e1659cc9c8b48025f97605e01878b33a"},{"sha":"308efaba2833e5e146319f74a2281e12ef3e5519","author":{"email":"94274d0b635748ad8df96c0fc4f19e1ecd3f67e2@microsoft.com","name":"stephentoub"},"message":"Avoid blocking CurlHandler write callback\n\nWhen receiving the body of an HTTP response, libcurl provides the data\nreceived via a callback that's invoked synchronously from the thread\npumping libcurl's processing.  This callback can't return until it's\nhanded off all of the available data, and thus the current implementation\nof CurlHandler blocks that thread until a reader has consumed the data.\nThis is both expensive and dangerous.  It's expensive because we end up\nblocking a thread until some reader comes along, and it's dangerous\nbecause this can easily lead to deadlock.  A libcurl multi handle may be\nused by only one thread at a time, which means that if the handle is being\nused by a thread while blocked on the write callback, no other thread can\naccess the multi handle, which means no other callbacks for other\nconcurrent requests can be invoked.  If multiple operations were queued,\nand then the data for them arrived in an order that didn't exactly match\nthe order of readers consuming the data, deadlock would ensue.\n\nThis change makes it so that we no longer block the callback, taking\nadvantage of a pausing mechanism libcurl provides that allows one to pause\na connection until it's needed.\n\nI rewrote the CurlResponseStream to manage this.  Now when the callback\nhas data to write, it attempts to transfer it to the stream.  If there's a\nreader already waiting for the data (represented by a task stored on the\nstream), the callback simply transfers its data to the reader.  If the\ncallback has too much data than would fit in the reader, the remaining\ndata is buffered on the stream.  If instead the callback finds that either\nthere isn't a waiting task or that there's already some remaining data\nbuffered from a previous callback, it instead pauses the connection, such\nthat no more callbacks will be invoked until we unpause.  From the reader\nside, a reader who tries to read data from the stream can pull data from\nthe remaining buffer if there is any, or can register a task with the\nstream that will be filled with data at some point when callback has data\navailable.\n\nAs part of debugging some issues with this change, I added a verbose\ntracing mechanism that's enabled by compiling the library with the\nCURLHANDLER_VERBOSE constant (the same that we use for enabling libcurl's\nverbose diagnostic output).  I left the tracing in as I found it valuable\nin diagnosing issues with the library, but we can remove it later if\ndesired.\n\nI also added a test that deadlocks before the change and that completes\nsuccessfully after.","distinct":true,"url":"https://api.github.com/repos/weshaggard/corefx/commits/308efaba2833e5e146319f74a2281e12ef3e5519"},{"sha":"7ee7c7100ab70776546e78b2c84ef14519c4ffc5","author":{"email":"94274d0b635748ad8df96c0fc4f19e1ecd3f67e2@microsoft.com","name":"stephentoub"},"message":"Address PR feedback\n\n- Changed properties on EasyRequest to be fields\n- Changed CurlResponseStream to wrap an EasyRequest rather than a CurlResponseMessage\n- Removed _position field that was only used for verbose tracing\n- Added a few more VerboseTrace calls\n- Changed _pendingReadRequest = null to ClearPendingReadRequest (not necessary, but good for consistency)\n- Added another couple Debug.Asserts","distinct":true,"url":"https://api.github.com/repos/weshaggard/corefx/commits/7ee7c7100ab70776546e78b2c84ef14519c4ffc5"},{"sha":"7411902301fa9ee6528629c9a669bca9eea2026d","author":{"email":"94274d0b635748ad8df96c0fc4f19e1ecd3f67e2@microsoft.com","name":"stephentoub"},"message":"Added EasyRequest ID and MultiAgent worker ID to verbose tracing\n\nWhen multiple HttpClients are being used, and/or when multiple requests are being issued, this makes it possible to correlate the traced messages.","distinct":true,"url":"https://api.github.com/repos/weshaggard/corefx/commits/7411902301fa9ee6528629c9a669bca9eea2026d"},{"sha":"e04b007e0a487a7c16c7ae6433533d2e99c706c7","author":{"email":"94274d0b635748ad8df96c0fc4f19e1ecd3f67e2@microsoft.com","name":"Stephen Toub"},"message":"Merge pull request #3109 from bartonjs/DisableFailingTests\n\nDisable intermittent ExportWithPrivateKey test","distinct":true,"url":"https://api.github.com/repos/weshaggard/corefx/commits/e04b007e0a487a7c16c7ae6433533d2e99c706c7"},{"sha":"f41c09dbb93723d62787e5b3973cd3fc8666fec8","author":{"email":"94274d0b635748ad8df96c0fc4f19e1ecd3f67e2@microsoft.com","name":"Stephen Toub"},"message":"Merge pull request #3105 from stephentoub/non_blocking_libcurl_callback\n\nAvoid blocking CurlHandler write callback","distinct":true,"url":"https://api.github.com/repos/weshaggard/corefx/commits/f41c09dbb93723d62787e5b3973cd3fc8666fec8"}]}