Skip to content

Commit 9f5ebb9

Browse files
authored
ref: wait on test the time needed (#484)
1 parent d902967 commit 9f5ebb9

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

test/Sentry.Tests/TaskUnobservedTaskExceptionIntegrationTests.cs

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,20 +45,28 @@ public void Handle_WithException_CaptureEvent()
4545
public void Handle_UnobservedTaskException_CaptureEvent()
4646
{
4747
_fixture.AppDomain = AppDomainAdapter.Instance;
48-
var evt = new ManualResetEvent(false);
48+
var captureCalledEvent = new ManualResetEvent(false);
4949
_fixture.Hub.When(x => x.CaptureEvent(Arg.Any<SentryEvent>()))
50-
.Do(_ => evt.Set());
50+
.Do(_ => captureCalledEvent.Set());
5151

5252
var sut = _fixture.GetSut();
5353
sut.Register(_fixture.Hub, SentryOptions);
5454
try
5555
{
56-
Task.Factory.StartNew(() => { throw new Exception("Unhandled on Task"); });
57-
Thread.Sleep(2000);
58-
GC.Collect();
59-
GC.WaitForPendingFinalizers();
60-
61-
Assert.True(evt.WaitOne(TimeSpan.FromMilliseconds(1)));
56+
var taskStartedEvent = new ManualResetEvent(false);
57+
_ = Task.Run(() =>
58+
{
59+
taskStartedEvent.Set();
60+
throw new Exception("Unhandled on Task");
61+
});
62+
Assert.True(taskStartedEvent.WaitOne(TimeSpan.FromSeconds(1)));
63+
var counter = 0;
64+
do
65+
{
66+
Assert.True(counter++ < 5);
67+
GC.Collect();
68+
GC.WaitForPendingFinalizers();
69+
} while (!captureCalledEvent.WaitOne(TimeSpan.FromMilliseconds(100)));
6270
}
6371
finally
6472
{

0 commit comments

Comments
 (0)