diff options
author | Jose Medrano <josmed@microsoft.com> | 2019-07-03 13:53:55 +0300 |
---|---|---|
committer | Jose Medrano <josmed@microsoft.com> | 2019-07-17 13:39:08 +0300 |
commit | 20885d1f4cce0c674fb4d32cb9748988297348c0 (patch) | |
tree | 1416eccebd7e154cccbde35f0db5d7ad315abfa8 /main | |
parent | 53c924527478885a7242bd8ab3de33e929f61e96 (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 (); |