From 08f5fcfdb6b2739b3d5f44cf2c08eea7f7523be6 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Wed, 9 Oct 2019 13:15:02 -0700 Subject: [PATCH] Use an infinite timeout when debugger is attached --- src/Analysis/Ast/Test/AnalysisTestBase.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Analysis/Ast/Test/AnalysisTestBase.cs b/src/Analysis/Ast/Test/AnalysisTestBase.cs index 56562519b..09ad974b6 100644 --- a/src/Analysis/Ast/Test/AnalysisTestBase.cs +++ b/src/Analysis/Ast/Test/AnalysisTestBase.cs @@ -39,6 +39,8 @@ namespace Microsoft.Python.Analysis.Tests { public abstract class AnalysisTestBase { protected TimeSpan AnalysisTimeout { get; set; } = TimeSpan.FromMinutes(1); + private TimeSpan GetAnalysisTimeout() => Debugger.IsAttached ? Timeout.InfiniteTimeSpan : AnalysisTimeout; + protected TestLogger TestLogger { get; } = new TestLogger(); protected ServiceManager Services { get; private set; } @@ -156,7 +158,7 @@ protected Task GetAnalysisAsync(string code, PythonLanguageVe TestLogger.Log(TraceEventType.Information, "Test: Analysis begin."); IDocumentAnalysis analysis; - using (var cts = new CancellationTokenSource(AnalysisTimeout)) { + using (var cts = new CancellationTokenSource(GetAnalysisTimeout())) { await services.GetService().WaitForCompleteAnalysisAsync(cts.Token); analysis = await doc.GetAnalysisAsync(-1, cts.Token); } @@ -169,7 +171,7 @@ protected Task GetAnalysisAsync(string code, PythonLanguageVe protected async Task GetDocumentAnalysisAsync(IDocument document) { var analyzer = Services.GetService(); - using (var cts = new CancellationTokenSource(AnalysisTimeout)) { + using (var cts = new CancellationTokenSource(GetAnalysisTimeout())) { await analyzer.WaitForCompleteAnalysisAsync(cts.Token); return await document.GetAnalysisAsync(Timeout.Infinite, cts.Token); }