X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FSystem%2FTest%2FSystem.Net.Sockets%2FUdpClientTest.cs;h=9b2453bd6f1d9cade2de2fdc27fecdd5544eabc3;hb=48e112d652335da23dd1b4d5f3227e54b74d0814;hp=2062cf84f62b9ab07d4f4783d02404c07b314480;hpb=f4a44a474ea9dbf49544cf9c97d727645c2d8e4a;p=mono.git diff --git a/mcs/class/System/Test/System.Net.Sockets/UdpClientTest.cs b/mcs/class/System/Test/System.Net.Sockets/UdpClientTest.cs index 2062cf84f62..9b2453bd6f1 100644 --- a/mcs/class/System/Test/System.Net.Sockets/UdpClientTest.cs +++ b/mcs/class/System/Test/System.Net.Sockets/UdpClientTest.cs @@ -13,9 +13,6 @@ using System.Threading; using NUnit.Framework; namespace MonoTests.System.Net.Sockets { -#if TARGET_JVM - [Ignore("UdpClient is not supported - since UDP sockets are not supported")] -#endif [TestFixture] public class UdpClientTest { [Test] // .ctor () @@ -44,6 +41,7 @@ namespace MonoTests.System.Net.Sockets { Assert.IsTrue (client.MulticastLoopback, "MulticastLoopback"); //Assert.AreEqual (32, client.Ttl, "Ttl"); #endif + client.Close (); } [Test] // .ctor (AddressFamily) @@ -73,6 +71,13 @@ namespace MonoTests.System.Net.Sockets { //Assert.AreEqual (32, client.Ttl, "#A:Ttl"); #endif +#if NET_2_0 + if (!Socket.OSSupportsIPv6) +#else + if (!Socket.SupportsIPv6) +#endif + Assert.Ignore ("IPv6 not enabled."); + client = new MyUdpClient (AddressFamily.InterNetworkV6); s = client.Client; Assert.IsNotNull (s, "#B:Client"); @@ -93,6 +98,7 @@ namespace MonoTests.System.Net.Sockets { Assert.IsTrue (client.MulticastLoopback, "#B:MulticastLoopback"); //Assert.AreEqual (32, client.Ttl, "#B:Ttl"); #endif + client.Close (); } [Test] // .ctor (AddressFamily) @@ -134,56 +140,58 @@ namespace MonoTests.System.Net.Sockets { [Test] // .ctor (Int32) public void Constructor3 () { - MyUdpClient client; Socket s; IPEndPoint localEP; - client = new MyUdpClient (IPEndPoint.MinPort); - s = client.Client; - Assert.IsNotNull (s, "#A:Client"); - Assert.AreEqual (AddressFamily.InterNetwork, s.AddressFamily, "#A:Client:AddressFamily"); - Assert.IsFalse (s.Connected, "#A:Client:Connected"); -#if NET_2_0 - Assert.IsTrue (s.IsBound, "#A:Client:IsBound"); -#endif - Assert.AreEqual (ProtocolType.Udp, s.ProtocolType, "#A:Client:ProtocolType"); - Assert.AreEqual (SocketType.Dgram, s.SocketType, "#A:Client:SocketType"); - Assert.IsFalse (client.Active, "#A:Active"); -#if NET_2_0 - Assert.IsFalse (client.DontFragment, "#A:DontFragment"); - Assert.IsFalse (client.EnableBroadcast, "#A:EnableBroadcast"); - //Assert.IsFalse (client.ExclusiveAddressUse, "#A:ExclusiveAddressUse"); - Assert.IsTrue (client.MulticastLoopback, "#A:MulticastLoopback"); - //Assert.AreEqual (32, client.Ttl, "#A:Ttl"); -#endif - localEP = s.LocalEndPoint as IPEndPoint; - Assert.IsNotNull (localEP, "#A:Client:LocalEndpoint"); - Assert.AreEqual (IPAddress.Any, localEP.Address, "#A:Client:LocalEndPoint/Address"); - Assert.AreEqual (AddressFamily.InterNetwork, localEP.AddressFamily, "#A:Client:LocalEndPoint/AddressFamily"); - - client = new MyUdpClient (IPEndPoint.MaxPort); - s = client.Client; - Assert.IsNotNull (s, "#B:Client"); - Assert.AreEqual (AddressFamily.InterNetwork, s.AddressFamily, "#B:Client:AddressFamily"); - Assert.IsFalse (s.Connected, "#B:Client:Connected"); -#if NET_2_0 - Assert.IsTrue (s.IsBound, "#B:Client:IsBound"); -#endif - Assert.AreEqual (ProtocolType.Udp, s.ProtocolType, "#B:Client:ProtocolType"); - Assert.AreEqual (SocketType.Dgram, s.SocketType, "#B:Client:SocketType"); - Assert.IsFalse (client.Active, "#B:Active"); -#if NET_2_0 - Assert.IsFalse (client.DontFragment, "#B:DontFragment"); - Assert.IsFalse (client.EnableBroadcast, "#B:EnableBroadcast"); - //Assert.IsFalse (client.ExclusiveAddressUse, "#B:ExclusiveAddressUse"); - Assert.IsTrue (client.MulticastLoopback, "#B:MulticastLoopback"); - //Assert.AreEqual (32, client.Ttl, "#B:Ttl"); -#endif - localEP = s.LocalEndPoint as IPEndPoint; - Assert.IsNotNull (localEP, "#B:Client:LocalEndpoint"); - Assert.AreEqual (IPAddress.Any, localEP.Address, "#B:Client:LocalEndPoint/Address"); - Assert.AreEqual (AddressFamily.InterNetwork, localEP.AddressFamily, "#B:Client:LocalEndPoint/AddressFamily"); - Assert.AreEqual (IPEndPoint.MaxPort, localEP.Port, "#B:Client:LocalEndPoint/Port"); + using (MyUdpClient client = new MyUdpClient (IPEndPoint.MinPort)) + { + s = client.Client; + Assert.IsNotNull (s, "#A:Client"); + Assert.AreEqual (AddressFamily.InterNetwork, s.AddressFamily, "#A:Client:AddressFamily"); + Assert.IsFalse (s.Connected, "#A:Client:Connected"); + #if NET_2_0 + Assert.IsTrue (s.IsBound, "#A:Client:IsBound"); + #endif + Assert.AreEqual (ProtocolType.Udp, s.ProtocolType, "#A:Client:ProtocolType"); + Assert.AreEqual (SocketType.Dgram, s.SocketType, "#A:Client:SocketType"); + Assert.IsFalse (client.Active, "#A:Active"); + #if NET_2_0 + Assert.IsFalse (client.DontFragment, "#A:DontFragment"); + Assert.IsFalse (client.EnableBroadcast, "#A:EnableBroadcast"); + //Assert.IsFalse (client.ExclusiveAddressUse, "#A:ExclusiveAddressUse"); + Assert.IsTrue (client.MulticastLoopback, "#A:MulticastLoopback"); + //Assert.AreEqual (32, client.Ttl, "#A:Ttl"); + #endif + localEP = s.LocalEndPoint as IPEndPoint; + Assert.IsNotNull (localEP, "#A:Client:LocalEndpoint"); + Assert.AreEqual (IPAddress.Any, localEP.Address, "#A:Client:LocalEndPoint/Address"); + Assert.AreEqual (AddressFamily.InterNetwork, localEP.AddressFamily, "#A:Client:LocalEndPoint/AddressFamily"); + } + using (MyUdpClient client = new MyUdpClient (IPEndPoint.MaxPort)) + { + s = client.Client; + Assert.IsNotNull (s, "#B:Client"); + Assert.AreEqual (AddressFamily.InterNetwork, s.AddressFamily, "#B:Client:AddressFamily"); + Assert.IsFalse (s.Connected, "#B:Client:Connected"); + #if NET_2_0 + Assert.IsTrue (s.IsBound, "#B:Client:IsBound"); + #endif + Assert.AreEqual (ProtocolType.Udp, s.ProtocolType, "#B:Client:ProtocolType"); + Assert.AreEqual (SocketType.Dgram, s.SocketType, "#B:Client:SocketType"); + Assert.IsFalse (client.Active, "#B:Active"); + #if NET_2_0 + Assert.IsFalse (client.DontFragment, "#B:DontFragment"); + Assert.IsFalse (client.EnableBroadcast, "#B:EnableBroadcast"); + //Assert.IsFalse (client.ExclusiveAddressUse, "#B:ExclusiveAddressUse"); + Assert.IsTrue (client.MulticastLoopback, "#B:MulticastLoopback"); + //Assert.AreEqual (32, client.Ttl, "#B:Ttl"); + #endif + localEP = s.LocalEndPoint as IPEndPoint; + Assert.IsNotNull (localEP, "#B:Client:LocalEndpoint"); + Assert.AreEqual (IPAddress.Any, localEP.Address, "#B:Client:LocalEndPoint/Address"); + Assert.AreEqual (AddressFamily.InterNetwork, localEP.AddressFamily, "#B:Client:LocalEndPoint/AddressFamily"); + Assert.AreEqual (IPEndPoint.MaxPort, localEP.Port, "#B:Client:LocalEndPoint/Port"); + } } [Test] // .ctor (Int32) @@ -215,36 +223,37 @@ namespace MonoTests.System.Net.Sockets { [Test] // .ctor (IPEndPoint) public void Constructor4 () { - MyUdpClient client; Socket s; IPEndPoint localEP; IPEndPoint clientEP; clientEP = new IPEndPoint (IPAddress.Loopback, 8001); - client = new MyUdpClient (clientEP); - s = client.Client; - Assert.IsNotNull (s, "#A:Client"); - Assert.AreEqual (AddressFamily.InterNetwork, s.AddressFamily, "#A:Client:AddressFamily"); - Assert.IsFalse (s.Connected, "#A:Client:Connected"); + using (MyUdpClient client = new MyUdpClient (clientEP)) + { + s = client.Client; + Assert.IsNotNull (s, "#A:Client"); + Assert.AreEqual (AddressFamily.InterNetwork, s.AddressFamily, "#A:Client:AddressFamily"); + Assert.IsFalse (s.Connected, "#A:Client:Connected"); #if NET_2_0 - Assert.IsTrue (s.IsBound, "#A:Client:IsBound"); + Assert.IsTrue (s.IsBound, "#A:Client:IsBound"); #endif - Assert.AreEqual (ProtocolType.Udp, s.ProtocolType, "#A:Client:ProtocolType"); - Assert.AreEqual (SocketType.Dgram, s.SocketType, "#A:Client:SocketType"); - Assert.IsFalse (client.Active, "#A:Active"); + Assert.AreEqual (ProtocolType.Udp, s.ProtocolType, "#A:Client:ProtocolType"); + Assert.AreEqual (SocketType.Dgram, s.SocketType, "#A:Client:SocketType"); + Assert.IsFalse (client.Active, "#A:Active"); #if NET_2_0 - Assert.IsFalse (client.DontFragment, "#A:DontFragment"); - Assert.IsFalse (client.EnableBroadcast, "#A:EnableBroadcast"); - //Assert.IsFalse (client.ExclusiveAddressUse, "#A:ExclusiveAddressUse"); - Assert.IsTrue (client.MulticastLoopback, "#A:MulticastLoopback"); - //Assert.AreEqual (32, client.Ttl, "#A:Ttl"); + Assert.IsFalse (client.DontFragment, "#A:DontFragment"); + Assert.IsFalse (client.EnableBroadcast, "#A:EnableBroadcast"); + //Assert.IsFalse (client.ExclusiveAddressUse, "#A:ExclusiveAddressUse"); + Assert.IsTrue (client.MulticastLoopback, "#A:MulticastLoopback"); + //Assert.AreEqual (32, client.Ttl, "#A:Ttl"); #endif - localEP = s.LocalEndPoint as IPEndPoint; - Assert.IsNotNull (localEP, "#A:Client:LocalEndpoint"); - Assert.IsFalse (object.ReferenceEquals (clientEP, localEP), "#A:Client:LocalEndPoint/ReferenceEquality"); - Assert.AreEqual (clientEP.Address, localEP.Address, "#A:Client:LocalEndPoint/Address"); - Assert.AreEqual (clientEP.AddressFamily, localEP.AddressFamily, "#A:Client:LocalEndPoint/AddressFamily"); - Assert.AreEqual (clientEP.Port, localEP.Port, "#A:Client:LocalEndPoint/Port"); + localEP = s.LocalEndPoint as IPEndPoint; + Assert.IsNotNull (localEP, "#A:Client:LocalEndpoint"); + Assert.IsFalse (object.ReferenceEquals (clientEP, localEP), "#A:Client:LocalEndPoint/ReferenceEquality"); + Assert.AreEqual (clientEP.Address, localEP.Address, "#A:Client:LocalEndPoint/Address"); + Assert.AreEqual (clientEP.AddressFamily, localEP.AddressFamily, "#A:Client:LocalEndPoint/AddressFamily"); + Assert.AreEqual (clientEP.Port, localEP.Port, "#A:Client:LocalEndPoint/Port"); + } } [Test] // .ctor (IPEndPoint) @@ -264,56 +273,66 @@ namespace MonoTests.System.Net.Sockets { [Test] // .ctor (Int32, AddressFamily) public void Constructor5 () { - MyUdpClient client; Socket s; IPEndPoint localEP; - client = new MyUdpClient (IPEndPoint.MinPort, AddressFamily.InterNetwork); - s = client.Client; - Assert.IsNotNull (s, "#A:Client"); - Assert.AreEqual (AddressFamily.InterNetwork, s.AddressFamily, "#A:Client:AddressFamily"); - Assert.IsFalse (s.Connected, "#A:Client:Connected"); + using (MyUdpClient client = new MyUdpClient (IPEndPoint.MinPort, AddressFamily.InterNetwork)) + { + s = client.Client; + Assert.IsNotNull (s, "#A:Client"); + Assert.AreEqual (AddressFamily.InterNetwork, s.AddressFamily, "#A:Client:AddressFamily"); + Assert.IsFalse (s.Connected, "#A:Client:Connected"); #if NET_2_0 - Assert.IsTrue (s.IsBound, "#A:Client:IsBound"); + Assert.IsTrue (s.IsBound, "#A:Client:IsBound"); #endif - Assert.AreEqual (ProtocolType.Udp, s.ProtocolType, "#A:Client:ProtocolType"); - Assert.AreEqual (SocketType.Dgram, s.SocketType, "#A:Client:SocketType"); - Assert.IsFalse (client.Active, "#A:Active"); + Assert.AreEqual (ProtocolType.Udp, s.ProtocolType, "#A:Client:ProtocolType"); + Assert.AreEqual (SocketType.Dgram, s.SocketType, "#A:Client:SocketType"); + Assert.IsFalse (client.Active, "#A:Active"); #if NET_2_0 - //Assert.IsFalse (client.DontFragment, "#A:DontFragment"); - Assert.IsFalse (client.EnableBroadcast, "#A:EnableBroadcast"); - //Assert.IsFalse (client.ExclusiveAddressUse, "#A:ExclusiveAddressUse"); - Assert.IsTrue (client.MulticastLoopback, "#A:MulticastLoopback"); - //Assert.AreEqual (32, client.Ttl, "#A:Ttl"); + //Assert.IsFalse (client.DontFragment, "#A:DontFragment"); + Assert.IsFalse (client.EnableBroadcast, "#A:EnableBroadcast"); + //Assert.IsFalse (client.ExclusiveAddressUse, "#A:ExclusiveAddressUse"); + Assert.IsTrue (client.MulticastLoopback, "#A:MulticastLoopback"); + //Assert.AreEqual (32, client.Ttl, "#A:Ttl"); #endif - localEP = s.LocalEndPoint as IPEndPoint; - Assert.IsNotNull (localEP, "#A:Client:LocalEndpoint"); - Assert.AreEqual (IPAddress.Any, localEP.Address, "#A:Client:LocalEndPoint/Address"); - Assert.AreEqual (AddressFamily.InterNetwork, localEP.AddressFamily, "#A:Client:LocalEndPoint/AddressFamily"); + localEP = s.LocalEndPoint as IPEndPoint; + Assert.IsNotNull (localEP, "#A:Client:LocalEndpoint"); + Assert.AreEqual (IPAddress.Any, localEP.Address, "#A:Client:LocalEndPoint/Address"); + Assert.AreEqual (AddressFamily.InterNetwork, localEP.AddressFamily, "#A:Client:LocalEndPoint/AddressFamily"); + } - client = new MyUdpClient (IPEndPoint.MaxPort, AddressFamily.InterNetworkV6); - s = client.Client; - Assert.IsNotNull (s, "#B:Client"); - Assert.AreEqual (AddressFamily.InterNetworkV6, s.AddressFamily, "#B:Client:AddressFamily"); - Assert.IsFalse (s.Connected, "#B:Client:Connected"); #if NET_2_0 - Assert.IsTrue (s.IsBound, "#B:Client:IsBound"); + if (!Socket.OSSupportsIPv6) +#else + if (!Socket.SupportsIPv6) +#endif + Assert.Ignore ("IPv6 not enabled."); + + using (MyUdpClient client = new MyUdpClient (IPEndPoint.MaxPort, AddressFamily.InterNetworkV6)) + { + s = client.Client; + Assert.IsNotNull (s, "#B:Client"); + Assert.AreEqual (AddressFamily.InterNetworkV6, s.AddressFamily, "#B:Client:AddressFamily"); + Assert.IsFalse (s.Connected, "#B:Client:Connected"); +#if NET_2_0 + Assert.IsTrue (s.IsBound, "#B:Client:IsBound"); #endif - Assert.AreEqual (ProtocolType.Udp, s.ProtocolType, "#B:Client:ProtocolType"); - Assert.AreEqual (SocketType.Dgram, s.SocketType, "#B:Client:SocketType"); - Assert.IsFalse (client.Active, "#B:Active"); + Assert.AreEqual (ProtocolType.Udp, s.ProtocolType, "#B:Client:ProtocolType"); + Assert.AreEqual (SocketType.Dgram, s.SocketType, "#B:Client:SocketType"); + Assert.IsFalse (client.Active, "#B:Active"); #if NET_2_0 - //Assert.IsFalse (client.DontFragment, "#B:DontFragment"); - Assert.IsFalse (client.EnableBroadcast, "#B:EnableBroadcast"); - //Assert.IsFalse (client.ExclusiveAddressUse, "#B:ExclusiveAddressUse"); - Assert.IsTrue (client.MulticastLoopback, "#B:MulticastLoopback"); - //Assert.AreEqual (32, client.Ttl, "#B:Ttl"); + //Assert.IsFalse (client.DontFragment, "#B:DontFragment"); + Assert.IsFalse (client.EnableBroadcast, "#B:EnableBroadcast"); + //Assert.IsFalse (client.ExclusiveAddressUse, "#B:ExclusiveAddressUse"); + Assert.IsTrue (client.MulticastLoopback, "#B:MulticastLoopback"); + //Assert.AreEqual (32, client.Ttl, "#B:Ttl"); #endif - localEP = s.LocalEndPoint as IPEndPoint; - Assert.IsNotNull (localEP, "#B:Client:LocalEndpoint"); - Assert.AreEqual (IPAddress.IPv6Any, localEP.Address, "#B:Client:LocalEndPoint/Address"); - Assert.AreEqual (AddressFamily.InterNetworkV6, localEP.AddressFamily, "#B:Client:LocalEndPoint/AddressFamily"); - Assert.AreEqual (IPEndPoint.MaxPort, localEP.Port, "#B:Client:LocalEndPoint/Port"); + localEP = s.LocalEndPoint as IPEndPoint; + Assert.IsNotNull (localEP, "#B:Client:LocalEndpoint"); + Assert.AreEqual (IPAddress.IPv6Any, localEP.Address, "#B:Client:LocalEndPoint/Address"); + Assert.AreEqual (AddressFamily.InterNetworkV6, localEP.AddressFamily, "#B:Client:LocalEndPoint/AddressFamily"); + Assert.AreEqual (IPEndPoint.MaxPort, localEP.Port, "#B:Client:LocalEndPoint/Port"); + } } [Test] // .ctor (Int32, AddressFamily) @@ -385,57 +404,59 @@ namespace MonoTests.System.Net.Sockets { [Test] // .ctor (String, Int32) public void Constructor6 () { - MyUdpClient client; Socket s; IPEndPoint localEP; // Bug #5503 // UDP port 0 doesn't seem to be valid. - client = new MyUdpClient ("127.0.0.1", 53); - s = client.Client; - Assert.IsNotNull (s, "#A:Client"); - Assert.AreEqual (AddressFamily.InterNetwork, s.AddressFamily, "#A:Client:AddressFamily"); - Assert.IsTrue (s.Connected, "#A:Client:Connected"); + using (MyUdpClient client = new MyUdpClient ("127.0.0.1", 53)) + { + s = client.Client; + Assert.IsNotNull (s, "#A:Client"); + Assert.AreEqual (AddressFamily.InterNetwork, s.AddressFamily, "#A:Client:AddressFamily"); + Assert.IsTrue (s.Connected, "#A:Client:Connected"); #if NET_2_0 - Assert.IsTrue (s.IsBound, "#A:Client:IsBound"); + Assert.IsTrue (s.IsBound, "#A:Client:IsBound"); #endif - Assert.AreEqual (ProtocolType.Udp, s.ProtocolType, "#A:Client:ProtocolType"); - Assert.AreEqual (SocketType.Dgram, s.SocketType, "#A:Client:SocketType"); - Assert.IsTrue (client.Active, "#A:Active"); + Assert.AreEqual (ProtocolType.Udp, s.ProtocolType, "#A:Client:ProtocolType"); + Assert.AreEqual (SocketType.Dgram, s.SocketType, "#A:Client:SocketType"); + Assert.IsTrue (client.Active, "#A:Active"); #if NET_2_0 - Assert.IsFalse (client.DontFragment, "#A:DontFragment"); - Assert.IsFalse (client.EnableBroadcast, "#A:EnableBroadcast"); - //Assert.IsFalse (client.ExclusiveAddressUse, "#A:ExclusiveAddressUse"); - //Assert.IsFalse (client.MulticastLoopback, "#A:MulticastLoopback"); - //Assert.AreEqual (32, client.Ttl, "#A:Ttl"); + Assert.IsFalse (client.DontFragment, "#A:DontFragment"); + Assert.IsFalse (client.EnableBroadcast, "#A:EnableBroadcast"); + //Assert.IsFalse (client.ExclusiveAddressUse, "#A:ExclusiveAddressUse"); + //Assert.IsFalse (client.MulticastLoopback, "#A:MulticastLoopback"); + //Assert.AreEqual (32, client.Ttl, "#A:Ttl"); #endif - localEP = s.LocalEndPoint as IPEndPoint; - Assert.IsNotNull (localEP, "#A:Client:LocalEndpoint"); - Assert.AreEqual (IPAddress.Loopback, localEP.Address, "#A:Client:LocalEndPoint/Address"); - Assert.AreEqual (AddressFamily.InterNetwork, localEP.AddressFamily, "#A:Client:LocalEndPoint/AddressFamily"); - - client = new MyUdpClient ("127.0.0.1", IPEndPoint.MaxPort); - s = client.Client; - Assert.IsNotNull (s, "#B:Client"); - Assert.AreEqual (AddressFamily.InterNetwork, s.AddressFamily, "#B:Client:AddressFamily"); - Assert.IsTrue (s.Connected, "#B:Client:Connected"); + localEP = s.LocalEndPoint as IPEndPoint; + Assert.IsNotNull (localEP, "#A:Client:LocalEndpoint"); + Assert.AreEqual (IPAddress.Loopback, localEP.Address, "#A:Client:LocalEndPoint/Address"); + Assert.AreEqual (AddressFamily.InterNetwork, localEP.AddressFamily, "#A:Client:LocalEndPoint/AddressFamily"); + } + using (MyUdpClient client = new MyUdpClient ("127.0.0.1", IPEndPoint.MaxPort)) + { + s = client.Client; + Assert.IsNotNull (s, "#B:Client"); + Assert.AreEqual (AddressFamily.InterNetwork, s.AddressFamily, "#B:Client:AddressFamily"); + Assert.IsTrue (s.Connected, "#B:Client:Connected"); #if NET_2_0 - Assert.IsTrue (s.IsBound, "#B:Client:IsBound"); + Assert.IsTrue (s.IsBound, "#B:Client:IsBound"); #endif - Assert.AreEqual (ProtocolType.Udp, s.ProtocolType, "#B:Client:ProtocolType"); - Assert.AreEqual (SocketType.Dgram, s.SocketType, "#B:Client:SocketType"); - Assert.IsTrue (client.Active, "#B:Active"); + Assert.AreEqual (ProtocolType.Udp, s.ProtocolType, "#B:Client:ProtocolType"); + Assert.AreEqual (SocketType.Dgram, s.SocketType, "#B:Client:SocketType"); + Assert.IsTrue (client.Active, "#B:Active"); #if NET_2_0 - Assert.IsFalse (client.DontFragment, "#B:DontFragment"); - Assert.IsFalse (client.EnableBroadcast, "#B:EnableBroadcast"); - //Assert.IsFalse (client.ExclusiveAddressUse, "#B:ExclusiveAddressUse"); - //Assert.IsFalse (client.MulticastLoopback, "#B:MulticastLoopback"); - //Assert.AreEqual (32, client.Ttl, "#B:Ttl"); + Assert.IsFalse (client.DontFragment, "#B:DontFragment"); + Assert.IsFalse (client.EnableBroadcast, "#B:EnableBroadcast"); + //Assert.IsFalse (client.ExclusiveAddressUse, "#B:ExclusiveAddressUse"); + //Assert.IsFalse (client.MulticastLoopback, "#B:MulticastLoopback"); + //Assert.AreEqual (32, client.Ttl, "#B:Ttl"); #endif - localEP = s.LocalEndPoint as IPEndPoint; - Assert.IsNotNull (localEP, "#B:Client:LocalEndpoint"); - Assert.AreEqual (IPAddress.Loopback, localEP.Address, "#B:Client:LocalEndPoint/Address"); - Assert.AreEqual (AddressFamily.InterNetwork, localEP.AddressFamily, "#B:Client:LocalEndPoint/AddressFamily"); + localEP = s.LocalEndPoint as IPEndPoint; + Assert.IsNotNull (localEP, "#B:Client:LocalEndpoint"); + Assert.AreEqual (IPAddress.Loopback, localEP.Address, "#B:Client:LocalEndPoint/Address"); + Assert.AreEqual (AddressFamily.InterNetwork, localEP.AddressFamily, "#B:Client:LocalEndPoint/AddressFamily"); + } } [Test] // .ctor (String, Int32) @@ -646,6 +667,13 @@ namespace MonoTests.System.Net.Sockets { [Test] // JoinMulticastGroup (Int32, IPAddress) public void JoinMulticastGroup2_Socket_Closed () { +#if NET_2_0 + if (!Socket.OSSupportsIPv6) +#else + if (!Socket.SupportsIPv6) +#endif + Assert.Ignore ("IPv6 not enabled."); + IPAddress mcast_addr = null; UdpClient client = new UdpClient (new IPEndPoint (IPAddress.IPv6Any, 1234)); @@ -1032,7 +1060,7 @@ namespace MonoTests.System.Net.Sockets { client.BeginReceive (BRCallback, client); - IPEndPoint ep = new IPEndPoint (Dns.GetHostEntry (string.Empty).AddressList[0], 1237); + IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 1237); byte[] send_bytes = new byte[] {10, 11, 12, 13}; client.Send (send_bytes, send_bytes.Length, ep); @@ -1051,16 +1079,21 @@ namespace MonoTests.System.Net.Sockets { [Test] public void Available () { - UdpClient client = new UdpClient (1238); - IPEndPoint ep = new IPEndPoint (Dns.GetHostEntry (string.Empty).AddressList[0], 1238); - byte[] bytes = new byte[] {10, 11, 12, 13}; - - client.Send (bytes, bytes.Length, ep); - int avail = client.Available; - - Assert.AreEqual (bytes.Length, avail, "Available #1"); + using (UdpClient client = new UdpClient (1238)) { + IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 1238); + byte[] bytes = new byte[] {10, 11, 12, 13}; + + int res = client.Send (bytes, bytes.Length, ep); + Assert.AreEqual (bytes.Length, res, "Send"); + + // that might happen too quickly, data sent and not yet received/available + Thread.Sleep (100); + int avail = client.Available; + + Assert.AreEqual (bytes.Length, avail, "Available #1"); - client.Close (); + client.Close (); + } } [Test]