Skip to content

Commit b956051

Browse files
committed
Added synchronous test for issue #256
1 parent 57d758c commit b956051

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

src/DotNext.Tests/IO/PoolingBufferedStreamTests.cs

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,7 @@ public static void OverwriteStream()
391391
}
392392

393393
[Fact]
394-
public static async Task RegressionIssue256()
394+
public static async Task RegressionIssue256Async()
395395
{
396396
const int dataSize = 128 + 3105 + 66 + 3111 + 66 + 3105 + 66 + 2513 + 128;
397397
ReadOnlyMemory<byte> expected = RandomBytes(dataSize);
@@ -413,6 +413,30 @@ public static async Task RegressionIssue256()
413413
Equal(expected.Slice(3303, 3107), buffer.Slice(0, 3107));
414414
}
415415
}
416+
417+
[Fact]
418+
public static void RegressionIssue256()
419+
{
420+
const int dataSize = 128 + 3105 + 66 + 3111 + 66 + 3105 + 66 + 2513 + 128;
421+
ReadOnlySpan<byte> expected = RandomBytes(dataSize);
422+
using var ms = new MemoryStream();
423+
424+
using (var buffered = new PoolingBufferedStream(ms, leaveOpen: true) { MaxBufferSize = 8192 })
425+
{
426+
buffered.Write(expected);
427+
buffered.Flush();
428+
}
429+
430+
ms.Position = 0;
431+
using (var reader = new PoolingBufferedStream(ms, leaveOpen: true) { MaxBufferSize = 4096 })
432+
{
433+
Span<byte> buffer = new byte[dataSize];
434+
reader.ReadExactly(buffer.Slice(0, 3175));
435+
reader.Position = 3303;
436+
reader.ReadExactly(buffer.Slice(0, 3107));
437+
Equal(expected.Slice(3303, 3107), buffer.Slice(0, 3107));
438+
}
439+
}
416440

417441
[Fact]
418442
public static void RepeatableReads()

0 commit comments

Comments
 (0)