@@ -307,8 +307,10 @@ await RunWithConnectedNetworkStreamsAsync((server, _) =>
307307 } ) ;
308308 }
309309
310- [ Fact ]
311- public async Task DisposeSocketDirectly_ReadWriteThrowNetworkException ( )
310+ [ Theory ]
311+ [ InlineData ( true ) ]
312+ [ InlineData ( false ) ]
313+ public async Task DisposeSocketDirectly_ReadWriteThrowNetworkException ( bool derivedNetworkStream )
312314 {
313315 using ( Socket listener = new Socket ( AddressFamily . InterNetwork , SocketType . Stream , ProtocolType . Tcp ) )
314316 using ( Socket client = new Socket ( AddressFamily . InterNetwork , SocketType . Stream , ProtocolType . Tcp ) )
@@ -318,20 +320,22 @@ public async Task DisposeSocketDirectly_ReadWriteThrowNetworkException()
318320
319321 Task < Socket > acceptTask = listener . AcceptAsync ( ) ;
320322 await Task . WhenAll ( acceptTask , client . ConnectAsync ( new IPEndPoint ( IPAddress . Loopback , ( ( IPEndPoint ) listener . LocalEndPoint ) . Port ) ) ) ;
321- using ( Socket serverSocket = await acceptTask )
322- using ( DerivedNetworkStream server = new DerivedNetworkStream ( serverSocket ) )
323- {
324- serverSocket . Dispose ( ) ;
323+ using Socket serverSocket = await acceptTask ;
324+ using NetworkStream server = derivedNetworkStream ? ( NetworkStream ) new DerivedNetworkStream ( serverSocket ) : new NetworkStream ( serverSocket ) ;
325+
326+ serverSocket . Dispose ( ) ;
325327
326- Assert . Throws < IOException > ( ( ) => server . Read ( new byte [ 1 ] , 0 , 1 ) ) ;
327- Assert . Throws < IOException > ( ( ) => server . Write ( new byte [ 1 ] , 0 , 1 ) ) ;
328+ Assert . Throws < IOException > ( ( ) => server . Read ( new byte [ 1 ] , 0 , 1 ) ) ;
329+ Assert . Throws < IOException > ( ( ) => server . Write ( new byte [ 1 ] , 0 , 1 ) ) ;
328330
329- Assert . Throws < IOException > ( ( ) => server . BeginRead ( new byte [ 1 ] , 0 , 1 , null , null ) ) ;
330- Assert . Throws < IOException > ( ( ) => server . BeginWrite ( new byte [ 1 ] , 0 , 1 , null , null ) ) ;
331+ Assert . Throws < IOException > ( ( ) => server . Read ( ( Span < byte > ) new byte [ 1 ] ) ) ;
332+ Assert . Throws < IOException > ( ( ) => server . Write ( ( ReadOnlySpan < byte > ) new byte [ 1 ] ) ) ;
331333
332- Assert . Throws < IOException > ( ( ) => { server . ReadAsync ( new byte [ 1 ] , 0 , 1 ) ; } ) ;
333- Assert . Throws < IOException > ( ( ) => { server . WriteAsync ( new byte [ 1 ] , 0 , 1 ) ; } ) ;
334- }
334+ Assert . Throws < IOException > ( ( ) => server . BeginRead ( new byte [ 1 ] , 0 , 1 , null , null ) ) ;
335+ Assert . Throws < IOException > ( ( ) => server . BeginWrite ( new byte [ 1 ] , 0 , 1 , null , null ) ) ;
336+
337+ Assert . Throws < IOException > ( ( ) => { server . ReadAsync ( new byte [ 1 ] , 0 , 1 ) ; } ) ;
338+ Assert . Throws < IOException > ( ( ) => { server . WriteAsync ( new byte [ 1 ] , 0 , 1 ) ; } ) ;
335339 }
336340 }
337341
0 commit comments