Reduce/remove the probability of having test failures wrt UdpClient.Available
authorSebastien Pouliot <sebastien@xamarin.com>
Thu, 12 Sep 2013 00:57:59 +0000 (20:57 -0400)
committerSebastien Pouliot <sebastien@xamarin.com>
Thu, 12 Sep 2013 01:00:04 +0000 (21:00 -0400)
mcs/class/System/Test/System.Net.Sockets/UdpClientTest.cs

index 6fa403c60758dd086031128faf0c0b7037700541..710b4982c11bae307354cee3e908bbd3e96ea5ca 100644 (file)
@@ -1051,16 +1051,21 @@ namespace MonoTests.System.Net.Sockets {
                [Test]
                public void Available ()
                {
-                       UdpClient client = new UdpClient (1238);
-                       IPEndPoint ep = new IPEndPoint (IPAddress.Loopback, 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]