未验证 提交 f8c9b287 编写于 作者: S Sam Harwell 提交者: GitHub

Merge pull request #32376 from sharwell/rm-workaround

Remove workaround for persistent errors
......@@ -2,8 +2,10 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using Microsoft.CodeAnalysis;
using Microsoft.VisualStudio.IntegrationTest.Utilities.Common;
......@@ -22,10 +24,23 @@ public void ShowErrorList()
public int ErrorListErrorCount
=> GetErrorCount();
public void WaitForNoErrorsInErrorList()
public void WaitForNoErrorsInErrorList(TimeSpan timeout)
{
var stopwatch = Stopwatch.StartNew();
while (GetErrorCount() != 0)
{
if (stopwatch.Elapsed >= timeout)
{
var message = new StringBuilder();
message.AppendLine("Unexpected errors in error list:");
foreach (var error in GetErrorListContents())
{
message.Append(" ").AppendLine(error.ToString());
}
throw new TimeoutException(message.ToString());
}
Thread.Yield();
}
}
......@@ -108,14 +123,6 @@ public static IEnumerable<IVsTaskItem> AsEnumerable(this IVsEnumTaskItems items)
break;
}
// BEGIN WORKAROUND FOR https://github.com/dotnet/roslyn/issues/32121
// Filter out items not belonging to a currently-open project
if (ErrorHandler.Failed(((IVsErrorItem)item[0]).GetHierarchy(out _)))
{
continue;
}
// END WORKAROUND FOR https://github.com/dotnet/roslyn/issues/32121
yield return item[0];
}
}
......
......@@ -365,7 +365,7 @@ public void CleanUpOpenSolution()
});
CloseSolution();
ErrorList_InProc.Create().WaitForNoErrorsInErrorList();
ErrorList_InProc.Create().WaitForNoErrorsInErrorList(Helper.HangMitigatingTimeout);
foreach (var directoryToDelete in directoriesToDelete)
{
......
using Microsoft.CodeAnalysis.Shared.TestHooks;
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
using Microsoft.CodeAnalysis.Shared.TestHooks;
using Microsoft.VisualStudio.IntegrationTest.Utilities.Common;
using Microsoft.VisualStudio.IntegrationTest.Utilities.InProcess;
......@@ -31,8 +34,8 @@ public void ShowErrorList()
_inProc.ShowErrorList();
}
public void WaitForNoErrorsInErrorList()
=> _inProc.WaitForNoErrorsInErrorList();
public void WaitForNoErrorsInErrorList(TimeSpan timeout)
=> _inProc.WaitForNoErrorsInErrorList(timeout);
public int GetErrorListErrorCount()
=> _inProc.GetErrorCount();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册