From 51e6dca90737e2f118d4a2e891042b9aca852681 Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Thu, 18 Apr 2024 12:20:01 +0200 Subject: [PATCH] Fix DisposeTriggersRequestAborted test. --- test/Tmds.DBus.Protocol.Tests/ConnectionTests.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/test/Tmds.DBus.Protocol.Tests/ConnectionTests.cs b/test/Tmds.DBus.Protocol.Tests/ConnectionTests.cs index 37d05900..daeb3ce4 100644 --- a/test/Tmds.DBus.Protocol.Tests/ConnectionTests.cs +++ b/test/Tmds.DBus.Protocol.Tests/ConnectionTests.cs @@ -43,6 +43,8 @@ public async Task DisconnectedException() [Fact] public async Task DisposeTriggersRequestAborted() { + TimeSpan timeout = TimeSpan.FromSeconds(30); + var connections = PairedConnection.CreatePair(); using var conn1 = connections.Item1; using var conn2 = connections.Item2; @@ -52,11 +54,13 @@ public async Task DisposeTriggersRequestAborted() Task pendingCall = conn1.CallMethodAsync(CreateMessage()); + await handler.WaitForRequestReceivedAsync().WaitAsync(timeout); + conn2.Dispose(); await Assert.ThrowsAsync(() => pendingCall); - await handler.WaitForCancelledAsync().WaitAsync(new CancellationTokenSource(TimeSpan.FromSeconds(30)).Token); + await handler.WaitForCancelledAsync().WaitAsync(timeout); MessageBuffer CreateMessage() { @@ -420,9 +424,11 @@ class WaitForCancellationHandler : IMethodHandler public string Path => "/"; private readonly TaskCompletionSource _cancelled = new(); + private readonly TaskCompletionSource _requestReceived = new(); public async ValueTask HandleMethodAsync(MethodContext context) { + _requestReceived.TrySetResult(); try { while (true) @@ -438,6 +444,8 @@ public async ValueTask HandleMethodAsync(MethodContext context) } } + public Task WaitForRequestReceivedAsync() => _requestReceived.Task; + public Task WaitForCancelledAsync() => _cancelled.Task; public bool RunMethodHandlerSynchronously(Message message)