Skip to content

Commit 76e578d

Browse files
committed
Add ReadAsyncTest
1 parent ed142f3 commit 76e578d

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

src/libraries/System.Net.Sockets/tests/FunctionalTests/TcpListenerTest.cs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,40 @@ async Task VerifyAccept(TcpListener listener)
228228
}
229229
}
230230

231+
[Fact]
232+
public async Task ReadAsyncTest()
233+
{
234+
async Task StartListenerAsync()
235+
{
236+
TcpListener listener = new TcpListener(IPAddress.Loopback, 0);
237+
listener.Start();
238+
Tcp client = await listener.AcceptTcpClientAsync();
239+
using (NetworkStream stream = client.GetStream())
240+
{
241+
byte[] buffer = new byte[1024];
242+
int bytesRead;
243+
while ((bytesRead = await stream.ReadAsync(buffer, 0, buffer.Length)) > 0);
244+
}
245+
listener.Stop();
246+
}
247+
248+
async Task StartClientAsync()
249+
{
250+
TcpClient client = new TcpClient(IPAddress.Loopback, 0);
251+
using (NetworkStream stream = client.GetStream())
252+
{
253+
byte[] data = Encoding.UTF8.GetBytes(new string('*', 1 << 22));
254+
await Task.Delay(10);
255+
await stream.WriteAsync(data, 0, data.Length);
256+
}
257+
client.Close();
258+
}
259+
260+
Task.Run(() => Console.WriteLine(Environment.StackTrace)).Wait();
261+
await StartListenerAsync();
262+
await StartClientAsync();
263+
}
264+
231265
[Fact]
232266
public void ExclusiveAddressUse_ListenerNotStarted_SetAndReadSuccessfully()
233267
{

0 commit comments

Comments
 (0)