Skip to content
Merged
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 @@ -40,7 +40,7 @@ internal override long StreamId

private StreamBuffer? ReadStreamBuffer => _isInitiator ? _streamState._inboundStreamBuffer : _streamState._outboundStreamBuffer;

internal override bool CanRead => ReadStreamBuffer is not null;
internal override bool CanRead => !_disposed && ReadStreamBuffer is not null;

internal override int Read(Span<byte> buffer)
{
Expand Down Expand Up @@ -80,7 +80,7 @@ internal override async ValueTask<int> ReadAsync(Memory<byte> buffer, Cancellati

private StreamBuffer? WriteStreamBuffer => _isInitiator ? _streamState._outboundStreamBuffer : _streamState._inboundStreamBuffer;

internal override bool CanWrite => WriteStreamBuffer is not null;
internal override bool CanWrite => !_disposed && WriteStreamBuffer is not null;

internal override void Write(ReadOnlySpan<byte> buffer)
{
Expand Down Expand Up @@ -199,15 +199,18 @@ public override void Dispose()
{
if (!_disposed)
{
_disposed = true;
Shutdown();

_disposed = true;
}
}

public override ValueTask DisposeAsync()
{
if (!_disposed)
{
Shutdown();

_disposed = true;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,7 @@ public sealed class MockQuicStreamConformanceTests : QuicStreamConformanceTests
public sealed class MsQuicQuicStreamConformanceTests : QuicStreamConformanceTests
{
protected override QuicImplementationProvider Provider => QuicImplementationProviders.MsQuic;
}

public abstract class QuicStreamConformanceTests : ConnectedStreamConformanceTests
{
// TODO: These are all hanging, likely due to Stream close behavior.
[ActiveIssue("https://github.com/dotnet/runtime/issues/756")]
public override Task Read_Eof_Returns0(ReadWriteMode mode, bool dataAvailableFirst) => base.Read_Eof_Returns0(mode, dataAvailableFirst);
Expand All @@ -38,6 +35,10 @@ public abstract class QuicStreamConformanceTests : ConnectedStreamConformanceTes
[ActiveIssue("https://github.com/dotnet/runtime/issues/756")]
public override Task Parallel_ReadWriteMultipleStreamsConcurrently() => base.Parallel_ReadWriteMultipleStreamsConcurrently();

}

public abstract class QuicStreamConformanceTests : ConnectedStreamConformanceTests
{
protected abstract QuicImplementationProvider Provider { get; }

protected override async Task<StreamPair> CreateConnectedStreamsAsync()
Expand Down