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() {
