Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -405,14 +405,14 @@ public async Task GetStreamCapacity_OpenCloseStreamCanceledIntoNegative_CountsCo
Assert.Equal(QuicDefaults.DefaultServerMaxInboundUnidirectionalStreams, unidiTotal);

// Open # of streams up to the capacity.
List<QuicStream> clientStreams = (await Task.WhenAll(Enumerable.Range(0, unidirectional ? QuicDefaults.DefaultServerMaxInboundUnidirectionalStreams : QuicDefaults.DefaultServerMaxInboundBidirectionalStreams)
.Select(i => clientConnection.OpenOutboundStreamAsync(unidirectional ? QuicStreamType.Unidirectional : QuicStreamType.Bidirectional).AsTask())))
.ToList();
QuicStream[] clientStreams = (await Task.WhenAll(Enumerable.Range(0, unidirectional ? QuicDefaults.DefaultServerMaxInboundUnidirectionalStreams : QuicDefaults.DefaultServerMaxInboundBidirectionalStreams)
.Select(i => clientConnection.OpenOutboundStreamAsync(unidirectional ? QuicStreamType.Unidirectional : QuicStreamType.Bidirectional).AsTask())))
.ToArray();
Comment on lines +408 to +410
// Open another # of streams up to 2x capacity all together.
CancellationTokenSource cts = new CancellationTokenSource();
List<Task<QuicStream>> pendingClientStreams = Enumerable.Range(0, unidirectional ? QuicDefaults.DefaultServerMaxInboundUnidirectionalStreams : QuicDefaults.DefaultServerMaxInboundBidirectionalStreams)
.Select(i => clientConnection.OpenOutboundStreamAsync(unidirectional ? QuicStreamType.Unidirectional : QuicStreamType.Bidirectional, cts.Token).AsTask())
.ToList();
Task<QuicStream>[] pendingClientStreams = Enumerable.Range(0, unidirectional ? QuicDefaults.DefaultServerMaxInboundUnidirectionalStreams : QuicDefaults.DefaultServerMaxInboundBidirectionalStreams)
.Select(i => clientConnection.OpenOutboundStreamAsync(unidirectional ? QuicStreamType.Unidirectional : QuicStreamType.Bidirectional, cts.Token).AsTask())
.ToArray();
foreach (var task in pendingClientStreams)
{
Assert.False(task.IsCompleted);
Expand All @@ -428,11 +428,11 @@ public async Task GetStreamCapacity_OpenCloseStreamCanceledIntoNegative_CountsCo
await clientStream.DisposeAsync();
await (await serverConnection.AcceptInboundStreamAsync()).DisposeAsync();
}
clientStreams.Clear();
Assert.False(streamsAvailableFired.CurrentCount > 0);

// Pending streams should get cancelled and disposing the streams now should lead to stream capacity increments.
bool first = true; // The stream capacity is cumulatively reported only after the STREAMS_AVAILABLE reached over 0.
OperationCanceledException oce = await Assert.ThrowsAsync<OperationCanceledException>(() => Task.WhenAll(pendingClientStreams));
foreach (var cancelledStream in pendingClientStreams)
{
Assert.True(cancelledStream.IsCanceled);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,7 @@ internal ValueTask<QuicListener> CreateQuicListener(IPEndPoint endpoint, Action<
}

QuicConnection clientConnection = null;
ValueTask<QuicConnection> serverTask = listener.AcceptConnectionAsync();
Task<QuicConnection> serverTask = listener.AcceptConnectionAsync().AsTask();
try
{
while (retry > 0)
Expand Down Expand Up @@ -250,6 +250,10 @@ internal ValueTask<QuicListener> CreateQuicListener(IPEndPoint endpoint, Action<
{
await clientConnection.DisposeAsync();
}
if (serverTask.IsCompleted)
{
_output.WriteLine($"Server {(serverTask.IsCompletedSuccessfully ? "succeeded" : "failed with " + serverTask.Exception)}");
}
Comment on lines +253 to +256
throw;
}
}
Expand Down
Loading