Repository: reef
Updated Branches:
  refs/heads/master abba4735b -> 55e8e3ffb


[REEF-1621] Fix TestTransportServerEvent failures in AppVeyor

The failures of TestTransportServerEvent were caused by extra messages
from TestRaceCondition (see JIRA for details). This change:
 * improves the messages sent by TransportTests to identify which
   test sent each message (to simplify future debug).
 * modifies *RaceCondition tests to read all messages sent by them.

JIRA:
  [REEF-1621](https://issues.apache.org/jira/browse/REEF-1621)

Pull request:
  This closes #1208


Project: http://git-wip-us.apache.org/repos/asf/reef/repo
Commit: http://git-wip-us.apache.org/repos/asf/reef/commit/55e8e3ff
Tree: http://git-wip-us.apache.org/repos/asf/reef/tree/55e8e3ff
Diff: http://git-wip-us.apache.org/repos/asf/reef/diff/55e8e3ff

Branch: refs/heads/master
Commit: 55e8e3ffbcb199a89df9fee29565fa33dfdb6242
Parents: abba473
Author: Mariia Mykhailova <[email protected]>
Authored: Thu Dec 29 12:23:07 2016 -0800
Committer: Julia Wang <[email protected]>
Committed: Tue Jan 3 11:38:42 2017 -0800

----------------------------------------------------------------------
 .../StreamingTransportTest.cs                   | 45 +++++++++------
 .../Org.Apache.REEF.Wake.Tests/TransportTest.cs | 59 ++++++++++++--------
 2 files changed, 65 insertions(+), 39 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/reef/blob/55e8e3ff/lang/cs/Org.Apache.REEF.Wake.Tests/StreamingTransportTest.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Wake.Tests/StreamingTransportTest.cs 
b/lang/cs/Org.Apache.REEF.Wake.Tests/StreamingTransportTest.cs
index 290dfc2..c559e14 100644
--- a/lang/cs/Org.Apache.REEF.Wake.Tests/StreamingTransportTest.cs
+++ b/lang/cs/Org.Apache.REEF.Wake.Tests/StreamingTransportTest.cs
@@ -66,9 +66,9 @@ namespace Org.Apache.REEF.Wake.Tests
                 IPEndPoint remoteEndpoint = new 
IPEndPoint(IPAddress.Parse("127.0.0.1"), server.LocalEndpoint.Port);
                 using (var client = new 
StreamingTransportClient<string>(remoteEndpoint, stringCodec, 
_tcpClientFactory))
                 {
-                    client.Send("Hello");
-                    client.Send(", ");
-                    client.Send("World!");
+                    client.Send("TestStreamingTransportServer - 1");
+                    client.Send("TestStreamingTransportServer - 2");
+                    client.Send("TestStreamingTransportServer - 3");
 
                     events.Add(queue.Take());
                     events.Add(queue.Take());
@@ -77,9 +77,9 @@ namespace Org.Apache.REEF.Wake.Tests
             }
 
             Assert.Equal(3, events.Count);
-            Assert.Equal(events[0], "Hello");
-            Assert.Equal(events[1], ", ");
-            Assert.Equal(events[2], "World!");
+            Assert.Equal("TestStreamingTransportServer - 1", events[0]);
+            Assert.Equal("TestStreamingTransportServer - 2", events[1]);
+            Assert.Equal("TestStreamingTransportServer - 3", events[2]);
         }
 
         /// <summary>
@@ -113,9 +113,9 @@ namespace Org.Apache.REEF.Wake.Tests
                         stringCodec,
                         _tcpClientFactory))
                 {
-                    client.Send("Hello");
-                    client.Send(", ");
-                    client.Send(" World");
+                    client.Send("TestStreamingTransportSenderStage - 1");
+                    client.Send("TestStreamingTransportSenderStage - 2");
+                    client.Send("TestStreamingTransportSenderStage - 3");
 
                     events.Add(queue.Take());
                     events.Add(queue.Take());
@@ -124,9 +124,9 @@ namespace Org.Apache.REEF.Wake.Tests
             }
 
             Assert.Equal(3, events.Count);
-            Assert.Equal(events[0], "Hello");
-            Assert.Equal(events[1], ", ");
-            Assert.Equal(events[2], " World");
+            Assert.Equal("TestStreamingTransportSenderStage - 1", events[0]);
+            Assert.Equal("TestStreamingTransportSenderStage - 2", events[1]);
+            Assert.Equal("TestStreamingTransportSenderStage - 3", events[2]);
         }
 
         /// <summary>
@@ -153,6 +153,7 @@ namespace Org.Apache.REEF.Wake.Tests
             {
                 server.Run();
 
+                int counter = 0;
                 for (int i = 0; i < numEventsExpected / 3; i++)
                 {
                     Task.Run(() =>
@@ -164,20 +165,32 @@ namespace Org.Apache.REEF.Wake.Tests
                                 stringCodec,
                                 _tcpClientFactory))
                         {
-                            client.Send("Hello");
-                            client.Send(", ");
-                            client.Send("World!");
+                            for (int j = 0; j < 3; j++)
+                            {
+                                client.Send("TestStreamingRaceCondition - " + 
counter++);
+                            }
                         }
                     });
                 }
 
                 for (int i = 0; i < numEventsExpected; i++)
                 {
-                    events.Add(queue.Take());
+                    string e;
+                    do
+                    {
+                        e = queue.Take();
+                    }
+                    while (e == null);
+
+                    events.Add(e);
                 }
             }
 
             Assert.Equal(numEventsExpected, events.Count);
+            foreach (var e in events)
+            {
+                Assert.True(e.StartsWith("TestStreamingRaceCondition - "), 
"Unexpected event [" + e + "]");
+            }
         }
 
         private static ITcpPortProvider GetTcpProvider(int portRangeStart, int 
portRangeEnd)

http://git-wip-us.apache.org/repos/asf/reef/blob/55e8e3ff/lang/cs/Org.Apache.REEF.Wake.Tests/TransportTest.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Wake.Tests/TransportTest.cs 
b/lang/cs/Org.Apache.REEF.Wake.Tests/TransportTest.cs
index a84ff2a..b33f87b 100644
--- a/lang/cs/Org.Apache.REEF.Wake.Tests/TransportTest.cs
+++ b/lang/cs/Org.Apache.REEF.Wake.Tests/TransportTest.cs
@@ -52,9 +52,9 @@ namespace Org.Apache.REEF.Wake.Tests
                 IPEndPoint remoteEndpoint = new IPEndPoint(_localIpAddress, 
server.LocalEndpoint.Port);
                 using (var client = new 
TransportClient<string>(remoteEndpoint, codec, _tcpClientFactory))
                 {
-                    client.Send("Hello");
-                    client.Send(", ");
-                    client.Send("World!");
+                    client.Send("TestTransportServer - 1");
+                    client.Send("TestTransportServer - 2");
+                    client.Send("TestTransportServer - 3");
 
                     events.Add(queue.Take());
                     events.Add(queue.Take());
@@ -63,9 +63,9 @@ namespace Org.Apache.REEF.Wake.Tests
             }
 
             Assert.Equal(3, events.Count);
-            Assert.Equal(events[0], "Hello");
-            Assert.Equal(events[1], ", ");
-            Assert.Equal(events[2], "World!");
+            Assert.Equal("TestTransportServer - 1", events[0]);
+            Assert.Equal("TestTransportServer - 2", events[1]);
+            Assert.Equal("TestTransportServer - 3", events[2]);
         }
 
         [Fact]
@@ -86,9 +86,9 @@ namespace Org.Apache.REEF.Wake.Tests
                 IPEndPoint remoteEndpoint = new IPEndPoint(_localIpAddress, 
server.LocalEndpoint.Port);
                 using (var client = new 
TransportClient<TestEvent>(remoteEndpoint, codec, _tcpClientFactory))
                 {
-                    client.Send(new TestEvent("Hello"));
-                    client.Send(new TestEvent(", "));
-                    client.Send(new TestEvent("World!"));
+                    client.Send(new TestEvent("TestTransportServerEvent - 1"));
+                    client.Send(new TestEvent("TestTransportServerEvent - 2"));
+                    client.Send(new TestEvent("TestTransportServerEvent - 3"));
 
                     events.Add(queue.Take());
                     events.Add(queue.Take());
@@ -97,9 +97,9 @@ namespace Org.Apache.REEF.Wake.Tests
             }
 
             Assert.Equal(3, events.Count);
-            Assert.Equal(events[0].Message, "Hello");
-            Assert.Equal(events[1].Message, ", ");
-            Assert.Equal(events[2].Message, "World!");
+            Assert.Equal("TestTransportServerEvent - 1", events[0].Message);
+            Assert.Equal("TestTransportServerEvent - 2", events[1].Message);
+            Assert.Equal("TestTransportServerEvent - 3", events[2].Message);
         }
 
         [Fact]
@@ -122,9 +122,9 @@ namespace Org.Apache.REEF.Wake.Tests
                 IPEndPoint remoteEndpoint = new IPEndPoint(_localIpAddress, 
server.LocalEndpoint.Port);
                 using (var client = new 
TransportClient<string>(remoteEndpoint, codec, clientHandler, 
_tcpClientFactory))
                 {
-                    client.Send("Hello");
-                    client.Send(", ");
-                    client.Send(" World");
+                    client.Send("TestTransportSenderStage - 1");
+                    client.Send("TestTransportSenderStage - 2");
+                    client.Send("TestTransportSenderStage - 3");
 
                     events.Add(queue.Take());
                     events.Add(queue.Take());
@@ -133,9 +133,9 @@ namespace Org.Apache.REEF.Wake.Tests
             }
 
             Assert.Equal(3, events.Count);
-            Assert.Equal(events[0], "Hello");
-            Assert.Equal(events[1], ", ");
-            Assert.Equal(events[2], " World");
+            Assert.Equal("TestTransportSenderStage - 1", events[0]);
+            Assert.Equal("TestTransportSenderStage - 2", events[1]);
+            Assert.Equal("TestTransportSenderStage - 3", events[2]);
         }
 
         [Fact]
@@ -154,6 +154,7 @@ namespace Org.Apache.REEF.Wake.Tests
             {
                 server.Run();
 
+                int counter = 0;
                 for (int i = 0; i < numEventsExpected / 3; i++)
                 {
                     Task.Run(() =>
@@ -161,20 +162,32 @@ namespace Org.Apache.REEF.Wake.Tests
                         IPEndPoint remoteEndpoint = new 
IPEndPoint(_localIpAddress, server.LocalEndpoint.Port);
                         using (var client = new 
TransportClient<string>(remoteEndpoint, codec, _tcpClientFactory))
                         {
-                            client.Send("Hello");
-                            client.Send(", ");
-                            client.Send("World!");
+                            for (int j = 0; j < 3; j++)
+                            {
+                                client.Send("TestRaceCondition - " + 
counter++);
+                            }
                         }
                     });
                 }
 
                 for (int i = 0; i < numEventsExpected; i++)
                 {
-                    events.Add(queue.Take());
+                    string e;
+                    do
+                    {
+                        e = queue.Take();
+                    }
+                    while (e == null);
+
+                    events.Add(e);
                 }
             }
 
             Assert.Equal(numEventsExpected, events.Count);
+            foreach (var e in events)
+            {
+                Assert.True(e.StartsWith("TestRaceCondition - "), "Unexpected 
event [" + e + "]");
+            }
         }
 
         private class TestEvent
@@ -184,7 +197,7 @@ namespace Org.Apache.REEF.Wake.Tests
                 Message = message;
             }
 
-            public string Message { get; set; }
+            public string Message { get; private set; }
 
             public override string ToString()
             {

Reply via email to