Skip to content

Commit 077285f

Browse files
committed
Fix TryRead_FalseCanBeCalledRepeatedly test stability
1 parent 486a587 commit 077285f

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

src/Nerdbank.Streams.Tests/StreamPipeReaderTestBase.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,13 @@ public void TryRead_FalseStillTurnsOnReadingMode()
156156
[Fact]
157157
public void TryRead_FalseCanBeCalledRepeatedly()
158158
{
159-
var reader = this.CreatePipeReader(new MemoryStream(new byte[] { 1, 2, 3 }));
159+
// Arrange for the read stream to never respond so that the test doesn't randomly fail in the StreamUsePipeReaderTests derived test class.
160+
var unblockReader = new ManualResetEventSlim();
161+
var slowReadStream = new MonitoringStream(new MemoryStream(new byte[] { 1, 2, 3 }));
162+
slowReadStream.WillReadMemory += (s, e) => unblockReader.Wait(this.TimeoutToken);
163+
slowReadStream.WillRead += (s, e) => unblockReader.Wait(this.TimeoutToken);
164+
165+
var reader = this.CreatePipeReader(slowReadStream);
160166

161167
// Verify that it's safe to call TryRead repeatedly when it returns False.
162168
Assert.False(reader.TryRead(out var readResult));

0 commit comments

Comments
 (0)