From f846e0c031d74914d3a02626597df583422164e0 Mon Sep 17 00:00:00 2001 From: Taloth Saldono Date: Sat, 6 Jun 2020 21:42:02 +0200 Subject: [PATCH] Fixed flaky test. --- .../Client/LogsClient.cs | 32 +++++++++++++++---- 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/src/NzbDrone.Integration.Test/Client/LogsClient.cs b/src/NzbDrone.Integration.Test/Client/LogsClient.cs index b64ec2971..468cce5d4 100644 --- a/src/NzbDrone.Integration.Test/Client/LogsClient.cs +++ b/src/NzbDrone.Integration.Test/Client/LogsClient.cs @@ -1,4 +1,5 @@ using System; +using System.Threading; using RestSharp; namespace NzbDrone.Integration.Test.Client @@ -12,13 +13,32 @@ namespace NzbDrone.Integration.Test.Client public string[] GetLogFileLines(string filename) { - var request = BuildRequest(filename); - var content = Execute(request, System.Net.HttpStatusCode.OK); + var attempts = 10; + var attempt = 1; + while (true) + { + try + { + var request = BuildRequest(filename); + var content = Execute(request, System.Net.HttpStatusCode.OK); - var lines = content.Split('\n'); - lines = Array.ConvertAll(lines, s => s.TrimEnd('\r')); - Array.Resize(ref lines, lines.Length - 1); - return lines; + var lines = content.Split('\n'); + lines = Array.ConvertAll(lines, s => s.TrimEnd('\r')); + Array.Resize(ref lines, lines.Length - 1); + return lines; + } + catch (Exception ex) + { + if (attempt == attempts) + { + _logger.Error(ex, "Failed to get log lines"); + throw; + } + _logger.Info(ex, "Failed to get log lines, attempt {0}/{1}", attempt, attempts); + Thread.Sleep(10); + attempt++; + } + } } } } \ No newline at end of file