Harden System.Net.Http.Functional.Tests.HttpClientHandlerTest_Http2.Dispose_Processin...
authorKrzysztof Wicher <mordotymoja@gmail.com>
Fri, 28 Jun 2019 22:45:40 +0000 (15:45 -0700)
committerGitHub <noreply@github.com>
Fri, 28 Jun 2019 22:45:40 +0000 (15:45 -0700)
* harden Dispose_ProcessingResponse_OK

* Add timeout to MRE.Wait

* remove duplicate test

Commit migrated from https://github.com/dotnet/corefx/commit/124cceaae8309fe0d357e142ae5a0084101107c2

src/libraries/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.Http2.cs

index e07c738..7fa0b98 100644 (file)
@@ -1498,62 +1498,6 @@ namespace System.Net.Http.Functional.Tests
         }
 
         [ConditionalFact(nameof(SupportsAlpn))]
-        public async Task Dispose_ProcessingResponse_OK()
-        {
-            HttpClient client =  CreateHttpClient();
-            bool diposeCalled = false;
-           int totalSent = 0;
-            int totalReceived = 0;
-
-            await Http2LoopbackServer.CreateClientAndServerAsync(async url =>
-            {
-                var request = new HttpRequestMessage(HttpMethod.Get, url);
-                request.Version = new Version(2,0);
-                HttpResponseMessage response = await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);
-                Assert.Equal(HttpStatusCode.OK, response.StatusCode);
-
-                using (Stream stream = await response.Content.ReadAsStreamAsync())
-                {
-                    // Dispose client after receiving response headers.
-                    client.Dispose();
-                    diposeCalled = true;
-
-                    int readLength;
-                    byte[] buffer = new byte[100];
-                    do {
-                        readLength = await stream.ReadAsync(buffer);
-                        totalReceived += readLength;
-                    } while (readLength != 0);
-                }
-
-                Assert.Equal(totalSent, totalReceived);
-            },
-            async server =>
-            {
-                Http2LoopbackConnection connection = await server.EstablishConnectionAsync();
-
-                (int streamId, HttpRequestData requestData) = await connection.ReadAndParseRequestHeaderAsync(readBody : true);
-                await connection.SendResponseHeadersAsync(streamId, endStream: false, HttpStatusCode.OK);
-
-                // Start streaming response and wait for client to be disposed.
-                byte[] responseBody = new byte[100];
-                while (!diposeCalled)
-                {
-                    await connection.SendResponseDataAsync(streamId, responseBody, endStream: false);
-                    totalSent += responseBody.Length;
-                    await Task.Delay(100);
-                }
-
-                // Send final data block.
-                await connection.SendResponseDataAsync(streamId, responseBody, endStream: true);
-                totalSent += responseBody.Length;
-
-                await connection.SendGoAway(streamId);
-                await connection.WaitForConnectionShutdownAsync();
-            });
-        }
-
-        [ConditionalFact(nameof(SupportsAlpn))]
         public async Task Dispose_ProcessingRequest_Throws()
         {
             HttpClient client =  CreateHttpClient();