using var listener = new TestEventListener("System.Net.NameResolution", EventLevel.Informational);
listener.AddActivityTracking();
- TaskCompletionSource firstResolutionStart = new();
- TaskCompletionSource secondResolutionStop = new();
+ TaskCompletionSource firstResolutionStart = new(TaskCreationOptions.RunContinuationsAsynchronously);
+ TaskCompletionSource secondResolutionStop = new(TaskCreationOptions.RunContinuationsAsynchronously);
List<(string EventName, Guid ActivityId)> events = new();
+ bool? callbackWaitTimedOut = null;
+
await listener.RunWithCallbackAsync(e =>
{
if (e.EventName == "ResolutionStart" || e.EventName == "ResolutionStop")
if (e.EventName == "ResolutionStart" && firstResolutionStart.TrySetResult())
{
- secondResolutionStop.Task.Wait();
+ callbackWaitTimedOut = !secondResolutionStop.Task.Wait(TimeSpan.FromSeconds(15));
}
},
async () =>
Assert.Equal(events[0].ActivityId, events[3].ActivityId);
Assert.Equal(events[1].ActivityId, events[2].ActivityId);
Assert.NotEqual(events[0].ActivityId, events[1].ActivityId);
+
+ Assert.False(callbackWaitTimedOut);
}).Dispose();
}
}