Skip to content
This repository was archived by the owner on Jun 21, 2023. It is now read-only.

Commit 54bd6d5

Browse files
committed
Make the test for #1493 fail consistently.
1 parent b9a22fb commit 54bd6d5

File tree

1 file changed

+22
-19
lines changed

1 file changed

+22
-19
lines changed

test/UnitTests/GitHub.TeamFoundation/VSGitExtTests.cs

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -176,26 +176,20 @@ public void ExceptionRefreshingRepositories_ReturnsEmptyList()
176176
}
177177

178178
[Test]
179-
public async Task ThreadingStressTest()
179+
public async Task ActiveRepositoriesChangedOrderingShouldBeCorrectAcrossThreads()
180180
{
181-
for (var i = 0; i < 100; ++i)
182-
{
183-
var gitExt = new MockGitExt();
184-
var repoFactory = new MockRepositoryFactory();
185-
var target = CreateVSGitExt(gitExt: gitExt, repoFactory: repoFactory);
186-
var activeRepositories1 = CreateActiveRepositories("repo1");
187-
var activeRepositories2 = CreateActiveRepositories("repo2");
188-
var task1 = Task.Run(() => gitExt.ActiveRepositories = activeRepositories1);
189-
await Task.Delay(1);
190-
var task2 = Task.Run(() => gitExt.ActiveRepositories = activeRepositories2);
191-
192-
await Task.WhenAll(task1, task2);
193-
194-
Assert.That(
195-
target.ActiveRepositories.Single().LocalPath,
196-
Is.EqualTo("repo2"),
197-
$"Failed at iteration {i}");
198-
}
181+
var gitExt = new MockGitExt();
182+
var repoFactory = new MockRepositoryFactory();
183+
var target = CreateVSGitExt(gitExt: gitExt, repoFactory: repoFactory);
184+
var activeRepositories1 = CreateActiveRepositories("repo1");
185+
var activeRepositories2 = CreateActiveRepositories("repo2");
186+
var task1 = Task.Run(() => gitExt.ActiveRepositories = activeRepositories1);
187+
await Task.Delay(1);
188+
var task2 = Task.Run(() => gitExt.ActiveRepositories = activeRepositories2);
189+
190+
await Task.WhenAll(task1, task2);
191+
192+
Assert.That(target.ActiveRepositories.Single().LocalPath, Is.EqualTo("repo2"));
199193
}
200194
}
201195

@@ -270,6 +264,15 @@ public ILocalRepositoryModel Create(string localPath)
270264
{
271265
var result = Substitute.For<ILocalRepositoryModel>();
272266
result.LocalPath.Returns(localPath);
267+
268+
if (localPath == "repo1")
269+
{
270+
// Trying to force #1493 here by introducing a a delay on the first
271+
// ActiveRepositories changed notification so that the second completes
272+
// first.
273+
Thread.Sleep(10);
274+
}
275+
273276
return result;
274277
}
275278
}

0 commit comments

Comments
 (0)