From efe9b95b14442f336519cf31c8649b0a658292ae Mon Sep 17 00:00:00 2001 From: Hao Kung <HaoK@users.noreply.github.com> Date: Thu, 20 Dec 2018 12:21:30 -0800 Subject: [PATCH] Improve cdn test reliability (#6044) --- .../Identity.Test/CdnScriptTaghelperTests.cs | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/Identity/test/Identity.Test/CdnScriptTaghelperTests.cs b/src/Identity/test/Identity.Test/CdnScriptTaghelperTests.cs index b9a65a320cb..d9a6e57929b 100644 --- a/src/Identity/test/Identity.Test/CdnScriptTaghelperTests.cs +++ b/src/Identity/test/Identity.Test/CdnScriptTaghelperTests.cs @@ -7,6 +7,7 @@ using System.IO; using System.Net.Http; using System.Security.Cryptography; using System.Text.RegularExpressions; +using System.Threading; using System.Threading.Tasks; using Xunit; using Xunit.Abstractions; @@ -38,7 +39,7 @@ namespace Microsoft.AspNetCore.Identity.Test Assert.NotEmpty(scriptTags); var shasum = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); - using (var client = new HttpClient()) + using (var client = new HttpClient(new RetryHandler(new HttpClientHandler() { }))) { foreach (var script in scriptTags) { @@ -62,6 +63,25 @@ namespace Microsoft.AspNetCore.Identity.Test }); } + class RetryHandler : DelegatingHandler + { + public RetryHandler(HttpMessageHandler innerHandler) : base(innerHandler) { } + protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) + { + HttpResponseMessage result = null; + for (var i = 0; i < 10; i++) + { + result = await base.SendAsync(request, cancellationToken); + if (result.IsSuccessStatusCode) + { + return result; + } + await Task.Delay(1000); + } + return result; + } + } + private struct ScriptTag { public string Src; -- GitLab