From 705d605df93dbdfe6836362ed64074860e4ccd1f Mon Sep 17 00:00:00 2001 From: wfurt Date: Thu, 29 Oct 2020 23:22:40 -0700 Subject: [PATCH 1/2] improve accuracy of Expect100Continue_WaitsExpectedPeriodOfTimeBeforeSendingContent test --- .../HttpClientHandlerTest.Cancellation.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/libraries/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.Cancellation.cs b/src/libraries/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.Cancellation.cs index e7a53481ba02f9..ecd1b141771891 100644 --- a/src/libraries/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.Cancellation.cs +++ b/src/libraries/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.Cancellation.cs @@ -60,11 +60,10 @@ await LoopbackServer.CreateClientAndServerAsync(async uri => var request = new HttpRequestMessage(HttpMethod.Post, uri) { Content = content, Version = UseVersion }; request.Headers.ExpectContinue = true; - var sw = Stopwatch.StartNew(); + long start = Environment.TickCount64; (await invoker.SendAsync(TestAsync, request, default)).Dispose(); - sw.Stop(); - - Assert.InRange(sw.Elapsed, delay - TimeSpan.FromSeconds(.5), delay * 20); // arbitrary wiggle room + long elapsed = content.Ticks - start; + Assert.True(elapsed > delay.Milliseconds); } }, async server => { @@ -80,6 +79,7 @@ await server.AcceptConnectionAsync(async connection => private sealed class SetTcsContent : StreamContent { private readonly TaskCompletionSource _tcs; + public long Ticks; public SetTcsContent(Stream stream, TaskCompletionSource tcs) : base(stream) => _tcs = tcs; @@ -89,6 +89,7 @@ protected override void SerializeToStream(Stream stream, TransportContext contex protected override Task SerializeToStreamAsync(Stream stream, TransportContext context) { _tcs.SetResult(true); + Ticks = Environment.TickCount64; return base.SerializeToStreamAsync(stream, context); } } From 42dde1db7e83c162b619cd527f4885cebc9212d7 Mon Sep 17 00:00:00 2001 From: wfurt Date: Fri, 30 Oct 2020 13:42:23 -0700 Subject: [PATCH 2/2] feedback from review --- .../FunctionalTests/HttpClientHandlerTest.Cancellation.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libraries/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.Cancellation.cs b/src/libraries/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.Cancellation.cs index ecd1b141771891..969415dde42529 100644 --- a/src/libraries/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.Cancellation.cs +++ b/src/libraries/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.Cancellation.cs @@ -63,7 +63,7 @@ await LoopbackServer.CreateClientAndServerAsync(async uri => long start = Environment.TickCount64; (await invoker.SendAsync(TestAsync, request, default)).Dispose(); long elapsed = content.Ticks - start; - Assert.True(elapsed > delay.Milliseconds); + Assert.True(elapsed >= delay.TotalMilliseconds); } }, async server => { @@ -88,8 +88,8 @@ protected override void SerializeToStream(Stream stream, TransportContext contex protected override Task SerializeToStreamAsync(Stream stream, TransportContext context) { - _tcs.SetResult(true); Ticks = Environment.TickCount64; + _tcs.SetResult(true); return base.SerializeToStreamAsync(stream, context); } }