diff options
author | Jose Medrano <josmed@microsoft.com> | 2019-07-03 13:53:55 +0300 |
---|---|---|
committer | monojenkins <jo.shields+jenkins@xamarin.com> | 2019-07-18 16:51:42 +0300 |
commit | 9e025082074c86c2160cc57dddfff10e43bb7d71 (patch) | |
tree | 5a749447b6105b838ccf9453b91d711ff18a914e /main | |
parent | cb16d3ca6c18f2b9ea5997d823302610bef034cf (diff) |
[BuildOutput] Simplifies and removes delay cancellation in SearchCanBeCanceled test Fixes VSTS #941229 - MonoDevelop.Ide.BuildOutputTests.CustomProject_SearchCanBeCanceled very unreliable
Diffstat (limited to 'main')
-rw-r--r-- | main/tests/Ide.Tests/MonoDevelop.Ide/BuildOutputTests.cs | 23 |
1 files changed, 20 insertions, 3 deletions
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,13 +142,30 @@ 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 () { var result = GetTestNodes (); |