From a85d36fed49b8c56d3365417e047fc4306cd74fc Mon Sep 17 00:00:00 2001 From: Anton Firszov Date: Mon, 26 Jul 2021 19:41:12 +0200 Subject: [PATCH] Fix some DualMode connect test issues (#56226) Fixes #55053, fixes #54677 --- .../tests/FunctionalTests/Connect.cs | 33 ++++++++----------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/src/libraries/System.Net.Sockets/tests/FunctionalTests/Connect.cs b/src/libraries/System.Net.Sockets/tests/FunctionalTests/Connect.cs index 01c6b48ed4de6..69c8b9b28a64c 100644 --- a/src/libraries/System.Net.Sockets/tests/FunctionalTests/Connect.cs +++ b/src/libraries/System.Net.Sockets/tests/FunctionalTests/Connect.cs @@ -84,7 +84,6 @@ public async Task Connect_MultipleIPAddresses_Success(IPAddress listenAt) } [Fact] - [ActiveIssue("https://github.com/dotnet/runtime/issues/55053", TestPlatforms.Linux)] public async Task Connect_DualMode_MultiAddressFamilyConnect_RetrievedEndPoints_Success() { if (!SupportsMultiConnect) @@ -96,21 +95,14 @@ public async Task Connect_DualMode_MultiAddressFamilyConnect_RetrievedEndPoints_ { Assert.True(client.DualMode); - Task connectTask = MultiConnectAsync(client, new IPAddress[] { IPAddress.IPv6Loopback, IPAddress.Loopback }, port); - await connectTask; - - var localEndPoint = client.LocalEndPoint as IPEndPoint; - Assert.NotNull(localEndPoint); - Assert.Equal(IPAddress.Loopback.MapToIPv6(), localEndPoint.Address); + await MultiConnectAsync(client, new IPAddress[] { IPAddress.IPv6Loopback, IPAddress.Loopback }, port); - var remoteEndPoint = client.RemoteEndPoint as IPEndPoint; - Assert.NotNull(remoteEndPoint); - Assert.Equal(IPAddress.Loopback.MapToIPv6(), remoteEndPoint.Address); + CheckIsIpv6LoopbackEndPoint(client.LocalEndPoint); + CheckIsIpv6LoopbackEndPoint(client.RemoteEndPoint); } } [Fact] - [ActiveIssue("https://github.com/dotnet/runtime/issues/54677", TestPlatforms.Linux)] [ActiveIssue("https://github.com/dotnet/runtime/issues/55709", TestPlatforms.Linux)] public async Task Connect_DualMode_DnsConnect_RetrievedEndPoints_Success() { @@ -127,19 +119,20 @@ public async Task Connect_DualMode_DnsConnect_RetrievedEndPoints_Success() { Assert.True(client.DualMode); - Task connectTask = ConnectAsync(client, new DnsEndPoint("localhost", port)); - await connectTask; - - var localEndPoint = client.LocalEndPoint as IPEndPoint; - Assert.NotNull(localEndPoint); - Assert.True(localEndPoint.Address.Equals(IPAddress.IPv6Loopback) || localEndPoint.Address.Equals(IPAddress.Loopback.MapToIPv6())); + await ConnectAsync(client, new DnsEndPoint("localhost", port)); - var remoteEndPoint = client.RemoteEndPoint as IPEndPoint; - Assert.NotNull(remoteEndPoint); - Assert.Equal(IPAddress.Loopback.MapToIPv6(), remoteEndPoint.Address); + CheckIsIpv6LoopbackEndPoint(client.LocalEndPoint); + CheckIsIpv6LoopbackEndPoint(client.RemoteEndPoint); } } + private static void CheckIsIpv6LoopbackEndPoint(EndPoint endPoint) + { + IPEndPoint ep = endPoint as IPEndPoint; + Assert.NotNull(ep); + Assert.True(ep.Address.Equals(IPAddress.IPv6Loopback) || ep.Address.Equals(IPAddress.Loopback.MapToIPv6())); + } + [Fact] public async Task Connect_OnConnectedSocket_Fails() {