From 9e025082074c86c2160cc57dddfff10e43bb7d71 Mon Sep 17 00:00:00 2001 From: Jose Medrano Date: Wed, 3 Jul 2019 12:53:55 +0200 Subject: [BuildOutput] Simplifies and removes delay cancellation in SearchCanBeCanceled test Fixes VSTS #941229 - MonoDevelop.Ide.BuildOutputTests.CustomProject_SearchCanBeCanceled very unreliable --- .../Ide.Tests/MonoDevelop.Ide/BuildOutputTests.cs | 23 +++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) (limited to 'main') diff --git a/main/tests/Ide.Tests/MonoDevelop.Ide/BuildOutputTests.cs b/main/tests/Ide.Tests/MonoDevelop.Ide/BuildOutputTests.cs index a1ce9ac7e1..9b01d0495b 100644 --- a/main/tests/Ide.Tests/MonoDevelop.Ide/BuildOutputTests.cs +++ b/main/tests/Ide.Tests/MonoDevelop.Ide/BuildOutputTests.cs @@ -132,7 +132,7 @@ namespace MonoDevelop.Ide } [Test] - public async Task CustomProject_SearchCanBeCanceled () + public async Task CustomProject_StressSearchCanBeCanceled () { BuildOutputNode firstMatch = null; @@ -142,12 +142,29 @@ namespace MonoDevelop.Ide for (int i = 0; i < 100; i++) { await Task.WhenAll (Task.Run (async () => firstMatch = await search.FirstMatch ("Message ")), Task.Delay (100).ContinueWith (t => search.Cancel ())); - - Assert.Null (firstMatch, "Got a first match while search was canceled"); Assert.True (search.IsCanceled, "Search was not canceled"); } } + [Test] + public async Task CustomProject_SearchCanBeCanceled () + { + var bo = GenerateCustomBuild (10); + var search = new BuildOutputDataSearch (bo.GetRootNodes (true)); + + var searchTask = search.FirstMatch ("Message "); + search.Cancel (); + + var firstMatch = await searchTask; + Assert.Null (firstMatch, "Got a first match, but the canceled search did not expect records"); + Assert.True (search.IsCanceled, "Search was not canceled, but we expect cancel the operation"); + + searchTask = search.FirstMatch ("Message "); + firstMatch = await searchTask; + Assert.NotNull (firstMatch, "No record was found in the search, but one was expected to be found."); + Assert.False (search.IsCanceled, "Search was canceled for some unexpected reason"); + } + [Test] public void BuildOutputNode_Search () { -- cgit v1.2.3