diff options
-rw-r--r-- | src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs | 146 |
1 files changed, 45 insertions, 101 deletions
diff --git a/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs b/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs index 4ae13d36b2..bdf535feed 100644 --- a/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs +++ b/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs @@ -138,9 +138,8 @@ namespace System.Net.Sockets.Tests private void DualModeConnect_IPAddressToHost_Helper(IPAddress connectTo, IPAddress listenOn, bool dualModeServer) { - int port; using (Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp)) - using (SocketServer server = new SocketServer(_log, listenOn, dualModeServer, out port)) + using (SocketServer server = new SocketServer(_log, listenOn, dualModeServer, out int port)) { socket.Connect(connectTo, port); Assert.True(socket.Connected); @@ -230,9 +229,8 @@ namespace System.Net.Sockets.Tests private void DualModeConnect_IPEndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, bool dualModeServer) { - int port; using (Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp)) - using (SocketServer server = new SocketServer(_log, listenOn, dualModeServer, out port)) + using (SocketServer server = new SocketServer(_log, listenOn, dualModeServer, out int port)) { socket.Connect(new IPEndPoint(connectTo, port)); Assert.True(socket.Connected); @@ -266,8 +264,7 @@ namespace System.Net.Sockets.Tests { socket.DualMode = false; - int port; - using (SocketServer server = new SocketServer(_log, IPAddress.Loopback, false, out port)) + using (SocketServer server = new SocketServer(_log, IPAddress.Loopback, false, out int port)) { AssertExtensions.Throws<ArgumentException>("addresses", () => { @@ -289,9 +286,8 @@ namespace System.Net.Sockets.Tests [MemberData(nameof(DualMode_IPAddresses_ListenOn_DualMode_Success_Data))] public void DualModeConnect_IPAddressListToHost_Success(IPAddress[] connectTo, IPAddress listenOn, bool dualModeServer) { - int port; using (Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp)) - using (SocketServer server = new SocketServer(_log, listenOn, dualModeServer, out port)) + using (SocketServer server = new SocketServer(_log, listenOn, dualModeServer, out int port)) { socket.Connect(connectTo, port); Assert.True(socket.Connected); @@ -307,9 +303,8 @@ namespace System.Net.Sockets.Tests [MemberData(nameof(DualMode_Connect_IPAddress_DualMode_Data))] public void DualModeConnect_LoopbackDnsToHost_Helper(IPAddress listenOn, bool dualModeServer) { - int port; using (Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp)) - using (SocketServer server = new SocketServer(_log, listenOn, dualModeServer, out port)) + using (SocketServer server = new SocketServer(_log, listenOn, dualModeServer, out int port)) { socket.Connect("localhost", port); Assert.True(socket.Connected); @@ -325,9 +320,8 @@ namespace System.Net.Sockets.Tests [MemberData(nameof(DualMode_Connect_IPAddress_DualMode_Data))] public void DualModeConnect_DnsEndPointToHost_Helper(IPAddress listenOn, bool dualModeServer) { - int port; using (Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp)) - using (SocketServer server = new SocketServer(_log, listenOn, dualModeServer, out port)) + using (SocketServer server = new SocketServer(_log, listenOn, dualModeServer, out int port)) { socket.Connect(new DnsEndPoint("localhost", port, AddressFamily.Unspecified)); Assert.True(socket.Connected); @@ -354,63 +348,43 @@ namespace System.Net.Sockets.Tests } [Fact] - public void BeginConnectV4IPAddressToV4Host_Success() - { - DualModeBeginConnect_IPAddressToHost_Helper(IPAddress.Loopback, IPAddress.Loopback, false); - } + public Task BeginConnectV4IPAddressToV4Host_Success() => DualModeBeginConnect_IPAddressToHost_Helper(IPAddress.Loopback, IPAddress.Loopback, false); [Fact] - public void BeginConnectV6IPAddressToV6Host_Success() - { - DualModeBeginConnect_IPAddressToHost_Helper(IPAddress.IPv6Loopback, IPAddress.IPv6Loopback, false); - } + public Task BeginConnectV6IPAddressToV6Host_Success() => DualModeBeginConnect_IPAddressToHost_Helper(IPAddress.IPv6Loopback, IPAddress.IPv6Loopback, false); [Fact] - public void BeginConnectV4IPAddressToV6Host_Fails() - { - DualModeBeginConnect_IPAddressToHost_Fails_Helper(IPAddress.Loopback, IPAddress.IPv6Loopback); - } + public Task BeginConnectV4IPAddressToV6Host_Fails() => DualModeBeginConnect_IPAddressToHost_Fails_Helper(IPAddress.Loopback, IPAddress.IPv6Loopback); [Fact] - public void BeginConnectV6IPAddressToV4Host_Fails() - { - DualModeBeginConnect_IPAddressToHost_Fails_Helper(IPAddress.IPv6Loopback, IPAddress.Loopback); - } + public Task BeginConnectV6IPAddressToV4Host_Fails() => DualModeBeginConnect_IPAddressToHost_Fails_Helper(IPAddress.IPv6Loopback, IPAddress.Loopback); [Fact] - public void BeginConnectV4IPAddressToDualHost_Success() - { - DualModeBeginConnect_IPAddressToHost_Helper(IPAddress.Loopback, IPAddress.IPv6Any, true); - } + public Task BeginConnectV4IPAddressToDualHost_Success() => DualModeBeginConnect_IPAddressToHost_Helper(IPAddress.Loopback, IPAddress.IPv6Any, true); [Fact] - public void BeginConnectV6IPAddressToDualHost_Success() - { - DualModeBeginConnect_IPAddressToHost_Helper(IPAddress.IPv6Loopback, IPAddress.IPv6Any, true); - } + public Task BeginConnectV6IPAddressToDualHost_Success() => DualModeBeginConnect_IPAddressToHost_Helper(IPAddress.IPv6Loopback, IPAddress.IPv6Any, true); - private void DualModeBeginConnect_IPAddressToHost_Helper(IPAddress connectTo, IPAddress listenOn, bool dualModeServer) + private async Task DualModeBeginConnect_IPAddressToHost_Helper(IPAddress connectTo, IPAddress listenOn, bool dualModeServer) { - int port; using (Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp)) - using (SocketServer server = new SocketServer(_log, listenOn, dualModeServer, out port)) + using (SocketServer server = new SocketServer(_log, listenOn, dualModeServer, out int port)) { - IAsyncResult async = socket.BeginConnect(connectTo, port, null, null); - socket.EndConnect(async); + await Task.Factory.FromAsync(socket.BeginConnect, socket.EndConnect, connectTo, port, null); Assert.True(socket.Connected); } } - private void DualModeBeginConnect_IPAddressToHost_Fails_Helper(IPAddress connectTo, IPAddress listenOn) + private async Task DualModeBeginConnect_IPAddressToHost_Fails_Helper(IPAddress connectTo, IPAddress listenOn) { - SocketException e = Assert.ThrowsAny<SocketException>(() => + SocketException e = await Assert.ThrowsAnyAsync<SocketException>(async () => { - DualModeBeginConnect_IPAddressToHost_Helper(connectTo, listenOn, false); + await DualModeBeginConnect_IPAddressToHost_Helper(connectTo, listenOn, false); if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { // On Unix, socket assignment is random (not incremental) and there is a small chance the // listening socket was created in another test currently running. Try the test one more time. - DualModeBeginConnect_IPAddressToHost_Helper(connectTo, listenOn, false); + await DualModeBeginConnect_IPAddressToHost_Helper(connectTo, listenOn, false); } }); Assert.NotEmpty(e.Message); @@ -436,37 +410,23 @@ namespace System.Net.Sockets.Tests } [Fact] - public void BeginConnectV4IPEndPointToV4Host_Success() - { - DualModeBeginConnect_IPEndPointToHost_Helper(IPAddress.Loopback, IPAddress.Loopback, false); - } + public Task BeginConnectV4IPEndPointToV4Host_Success() => DualModeBeginConnect_IPEndPointToHost_Helper(IPAddress.Loopback, IPAddress.Loopback, false); [Fact] - public void BeginConnectV6IPEndPointToV6Host_Success() - { - DualModeBeginConnect_IPEndPointToHost_Helper(IPAddress.IPv6Loopback, IPAddress.IPv6Loopback, false); - } + public Task BeginConnectV6IPEndPointToV6Host_Success() => DualModeBeginConnect_IPEndPointToHost_Helper(IPAddress.IPv6Loopback, IPAddress.IPv6Loopback, false); [Fact] - public void BeginConnectV4IPEndPointToDualHost_Success() - { - DualModeBeginConnect_IPEndPointToHost_Helper(IPAddress.Loopback, IPAddress.IPv6Any, true); - } + public Task BeginConnectV4IPEndPointToDualHost_Success() => DualModeBeginConnect_IPEndPointToHost_Helper(IPAddress.Loopback, IPAddress.IPv6Any, true); [Fact] - public void BeginConnectV6IPEndPointToDualHost_Success() - { - DualModeBeginConnect_IPEndPointToHost_Helper(IPAddress.IPv6Loopback, IPAddress.IPv6Any, true); - } + public Task BeginConnectV6IPEndPointToDualHost_Success() => DualModeBeginConnect_IPEndPointToHost_Helper(IPAddress.IPv6Loopback, IPAddress.IPv6Any, true); - private void DualModeBeginConnect_IPEndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, bool dualModeServer) + private async Task DualModeBeginConnect_IPEndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, bool dualModeServer) { - int port; using (Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp)) - using (SocketServer server = new SocketServer(_log, listenOn, dualModeServer, out port)) + using (SocketServer server = new SocketServer(_log, listenOn, dualModeServer, out int port)) { - IAsyncResult async = socket.BeginConnect(new IPEndPoint(connectTo, port), null, null); - socket.EndConnect(async); + await Task.Factory.FromAsync(socket.BeginConnect, socket.EndConnect, new IPEndPoint(connectTo, port), null); Assert.True(socket.Connected); } } @@ -479,14 +439,12 @@ namespace System.Net.Sockets.Tests [Theory] [MemberData(nameof(DualMode_IPAddresses_ListenOn_DualMode_Data))] [PlatformSpecific(TestPlatforms.Windows)] // Connecting sockets to DNS endpoints via the instance Connect and ConnectAsync methods not supported on Unix - private void DualModeBeginConnect_IPAddressListToHost_Helper(IPAddress[] connectTo, IPAddress listenOn, bool dualModeServer) + private async Task DualModeBeginConnect_IPAddressListToHost_Helper(IPAddress[] connectTo, IPAddress listenOn, bool dualModeServer) { - int port; using (Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp)) - using (SocketServer server = new SocketServer(_log, listenOn, dualModeServer, out port)) + using (SocketServer server = new SocketServer(_log, listenOn, dualModeServer, out int port)) { - IAsyncResult async = socket.BeginConnect(connectTo, port, null, null); - socket.EndConnect(async); + await Task.Factory.FromAsync(socket.BeginConnect, socket.EndConnect, connectTo, port, null); Assert.True(socket.Connected); } } @@ -494,14 +452,12 @@ namespace System.Net.Sockets.Tests [Theory] [MemberData(nameof(DualMode_Connect_IPAddress_DualMode_Data))] [PlatformSpecific(TestPlatforms.Windows)] // Connecting sockets to DNS endpoints via the instance Connect and ConnectAsync methods not supported on Unix - public void DualModeBeginConnect_LoopbackDnsToHost_Helper(IPAddress listenOn, bool dualModeServer) + public async Task DualModeBeginConnect_LoopbackDnsToHost_Helper(IPAddress listenOn, bool dualModeServer) { - int port; using (Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp)) - using (SocketServer server = new SocketServer(_log, listenOn, dualModeServer, out port)) + using (SocketServer server = new SocketServer(_log, listenOn, dualModeServer, out int port)) { - IAsyncResult async = socket.BeginConnect("localhost", port, null, null); - socket.EndConnect(async); + await Task.Factory.FromAsync(socket.BeginConnect, socket.EndConnect, "localhost", port, null); Assert.True(socket.Connected); } } @@ -509,14 +465,12 @@ namespace System.Net.Sockets.Tests [Theory] [MemberData(nameof(DualMode_Connect_IPAddress_DualMode_Data))] [PlatformSpecific(TestPlatforms.Windows)] // Connecting sockets to DNS endpoints via the instance Connect and ConnectAsync methods not supported on Unix - public void DualModeBeginConnect_DnsEndPointToHost_Helper(IPAddress listenOn, bool dualModeServer) + public async Task DualModeBeginConnect_DnsEndPointToHost_Helper(IPAddress listenOn, bool dualModeServer) { - int port; using (Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp)) - using (SocketServer server = new SocketServer(_log, listenOn, dualModeServer, out port)) + using (SocketServer server = new SocketServer(_log, listenOn, dualModeServer, out int port)) { - IAsyncResult async = socket.BeginConnect(new DnsEndPoint("localhost", port), null, null); - socket.EndConnect(async); + await Task.Factory.FromAsync(socket.BeginConnect, socket.EndConnect, new DnsEndPoint("localhost", port), null); Assert.True(socket.Connected); } } @@ -578,9 +532,8 @@ namespace System.Net.Sockets.Tests private void DualModeConnectAsync_IPEndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, bool dualModeServer) { - int port; using (Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp)) - using (SocketServer server = new SocketServer(_log, listenOn, dualModeServer, out port)) + using (SocketServer server = new SocketServer(_log, listenOn, dualModeServer, out int port)) { ManualResetEvent waitHandle = new ManualResetEvent(false); SocketAsyncEventArgs args = new SocketAsyncEventArgs(); @@ -619,9 +572,8 @@ namespace System.Net.Sockets.Tests [MemberData(nameof(DualMode_Connect_IPAddress_DualMode_Data))] public void DualModeConnectAsync_DnsEndPointToHost_Helper(IPAddress listenOn, bool dualModeServer) { - int port; using (Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp)) - using (SocketServer server = new SocketServer(_log, listenOn, dualModeServer, out port)) + using (SocketServer server = new SocketServer(_log, listenOn, dualModeServer, out int port)) { ManualResetEvent waitHandle = new ManualResetEvent(false); SocketAsyncEventArgs args = new SocketAsyncEventArgs(); @@ -646,8 +598,7 @@ namespace System.Net.Sockets.Tests [MemberData(nameof(DualMode_Connect_IPAddress_DualMode_Data))] public void DualModeConnectAsync_Static_DnsEndPointToHost_Helper(IPAddress listenOn, bool dualModeServer) { - int port; - using (SocketServer server = new SocketServer(_log, listenOn, dualModeServer, out port)) + using (SocketServer server = new SocketServer(_log, listenOn, dualModeServer, out int port)) { ManualResetEvent waitHandle = new ManualResetEvent(false); SocketAsyncEventArgs args = new SocketAsyncEventArgs(); @@ -1141,9 +1092,8 @@ namespace System.Net.Sockets.Tests private void DualModeSendTo_IPEndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, bool dualModeServer, bool expectedToTimeout = false) { - int port; using (Socket client = new Socket(SocketType.Dgram, ProtocolType.Udp)) - using (SocketUdpServer server = new SocketUdpServer(_log, listenOn, dualModeServer, out port)) + using (SocketUdpServer server = new SocketUdpServer(_log, listenOn, dualModeServer, out int port)) { // Send a few packets, in case they aren't delivered reliably. for (int i = 0; i < (expectedToTimeout ? 1 : TestSettings.UDPRedundancy); i++) @@ -1241,9 +1191,8 @@ namespace System.Net.Sockets.Tests private void DualModeBeginSendTo_EndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, bool dualModeServer, bool expectedToTimeout = false) { - int port; using (Socket client = new Socket(SocketType.Dgram, ProtocolType.Udp)) - using (SocketUdpServer server = new SocketUdpServer(_log, listenOn, dualModeServer, out port)) + using (SocketUdpServer server = new SocketUdpServer(_log, listenOn, dualModeServer, out int port)) { // Send a few packets, in case they aren't delivered reliably. for (int i = 0; i < (expectedToTimeout ? 1 : TestSettings.UDPRedundancy); i++) @@ -1364,9 +1313,8 @@ namespace System.Net.Sockets.Tests private void DualModeSendToAsync_IPEndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, bool dualModeServer, bool expectedToTimeout = false) { - int port; using (Socket client = new Socket(SocketType.Dgram, ProtocolType.Udp)) - using (SocketUdpServer server = new SocketUdpServer(_log, listenOn, dualModeServer, out port)) + using (SocketUdpServer server = new SocketUdpServer(_log, listenOn, dualModeServer, out int port)) { // Send a few packets, in case they aren't delivered reliably. for (int i = 0; i < (expectedToTimeout ? 1 : TestSettings.UDPRedundancy); i++) @@ -1863,9 +1811,8 @@ namespace System.Net.Sockets.Tests byte[] buf = new byte[1]; SocketFlags flags = SocketFlags.None; - IPPacketInformation packetInfo; - Assert.Throws<PlatformNotSupportedException>(() => sock.ReceiveMessageFrom(buf, 0, buf.Length, ref flags, ref ep, out packetInfo)); + Assert.Throws<PlatformNotSupportedException>(() => sock.ReceiveMessageFrom(buf, 0, buf.Length, ref flags, ref ep, out IPPacketInformation packetInfo)); } } @@ -1897,10 +1844,9 @@ namespace System.Net.Sockets.Tests EndPoint receivedFrom = new IPEndPoint(IPAddress.Loopback, UnusedPort); SocketFlags socketFlags = SocketFlags.None; - IPPacketInformation ipPacketInformation; AssertExtensions.Throws<ArgumentException>("remoteEP", () => { - int received = socket.ReceiveMessageFrom(new byte[1], 0, 1, ref socketFlags, ref receivedFrom, out ipPacketInformation); + int received = socket.ReceiveMessageFrom(new byte[1], 0, 1, ref socketFlags, ref receivedFrom, out IPPacketInformation ipPacketInformation); }); } } @@ -1915,11 +1861,10 @@ namespace System.Net.Sockets.Tests int port = socket.BindToAnonymousPort(IPAddress.IPv6Loopback); EndPoint receivedFrom = new DnsEndPoint("localhost", port, AddressFamily.InterNetworkV6); SocketFlags socketFlags = SocketFlags.None; - IPPacketInformation ipPacketInformation; AssertExtensions.Throws<ArgumentException>("remoteEP", () => { - int received = socket.ReceiveMessageFrom(new byte[1], 0, 1, ref socketFlags, ref receivedFrom, out ipPacketInformation); + int received = socket.ReceiveMessageFrom(new byte[1], 0, 1, ref socketFlags, ref receivedFrom, out IPPacketInformation ipPacketInformation); }); } } @@ -2202,7 +2147,6 @@ namespace System.Net.Sockets.Tests EndPoint receivedFrom = new IPEndPoint(connectTo, port); SocketFlags socketFlags = SocketFlags.None; - IPPacketInformation ipPacketInformation; IAsyncResult async = serverSocket.BeginReceiveMessageFrom(new byte[1], 0, 1, socketFlags, ref receivedFrom, null, null); // Behavior difference from Desktop: receivedFrom will _not_ change during the synchronous phase. @@ -2219,7 +2163,7 @@ namespace System.Net.Sockets.Tests } receivedFrom = new IPEndPoint(connectTo, port); - int received = serverSocket.EndReceiveMessageFrom(async, ref socketFlags, ref receivedFrom, out ipPacketInformation); + int received = serverSocket.EndReceiveMessageFrom(async, ref socketFlags, ref receivedFrom, out IPPacketInformation ipPacketInformation); Assert.Equal(1, received); Assert.Equal<Type>(receivedFrom.GetType(), typeof(IPEndPoint)); |