You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@reef.apache.org by ta...@apache.org on 2016/07/05 06:15:55 UTC
reef git commit: [REEF-68] Make Wake unit tests robust to port
conflicts
Repository: reef
Updated Branches:
refs/heads/master 50b002946 -> 684774b9c
[REEF-68] Make Wake unit tests robust to port conflicts
This addressed the issue by
* Giving 0 for port numbers which leads to using random numbers as port numbers,
* Getting port numbers with getListeningPort() for reuse.
* Using getMyIdentifer() to directly get remote identifiers.
JIRA:
[REEF-68](https://issues.apache.org/jira/browse/REEF-68)
Pull Request:
Closes #1068
Project: http://git-wip-us.apache.org/repos/asf/reef/repo
Commit: http://git-wip-us.apache.org/repos/asf/reef/commit/684774b9
Tree: http://git-wip-us.apache.org/repos/asf/reef/tree/684774b9
Diff: http://git-wip-us.apache.org/repos/asf/reef/diff/684774b9
Branch: refs/heads/master
Commit: 684774b9c359ace5dd499dc3ceba4e7ccd65f65b
Parents: 50b0029
Author: Eunhyang Kim <ga...@gmail.com>
Authored: Mon Jul 4 16:20:45 2016 +0900
Committer: taegeonum <ta...@gmail.com>
Committed: Tue Jul 5 15:11:00 2016 +0900
----------------------------------------------------------------------
.../reef/wake/test/remote/LargeMsgTest.java | 4 ++--
.../remote/RemoteIdentifierFactoryTest.java | 3 +--
.../wake/test/remote/RemoteManagerTest.java | 23 +++++++-------------
.../reef/wake/test/remote/RemoteTest.java | 8 +++----
.../wake/test/remote/SmallMessagesTest.java | 8 +++----
.../reef/wake/test/remote/TestRemote.java | 15 +++----------
.../wake/test/remote/TransportRaceTest.java | 5 ++---
.../reef/wake/test/remote/TransportTest.java | 8 +++----
8 files changed, 28 insertions(+), 46 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/reef/blob/684774b9/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/LargeMsgTest.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/LargeMsgTest.java b/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/LargeMsgTest.java
index a78e964..3a9fa2f 100644
--- a/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/LargeMsgTest.java
+++ b/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/LargeMsgTest.java
@@ -90,8 +90,8 @@ public class LargeMsgTest {
new ServerHandler(monitor, dataSize), 1, new LoggingEventHandler<Throwable>());
final String hostAddress = this.localAddressProvider.getLocalAddress();
- final int port = 7001;
- final Transport transport = tpFactory.newInstance(hostAddress, port, clientStage, serverStage, 1, 10000);
+ final Transport transport = tpFactory.newInstance(hostAddress, 0, clientStage, serverStage, 1, 10000);
+ final int port = transport.getListeningPort();
final Link<byte[]> link = transport.open(new InetSocketAddress(hostAddress, port), new PassThroughEncoder(), null);
final EStage<byte[]> writeSubmitter = new ThreadPoolStage<>("Submitter", new EventHandler<byte[]>() {
http://git-wip-us.apache.org/repos/asf/reef/blob/684774b9/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/RemoteIdentifierFactoryTest.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/RemoteIdentifierFactoryTest.java b/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/RemoteIdentifierFactoryTest.java
index 67e2a69..126316f 100644
--- a/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/RemoteIdentifierFactoryTest.java
+++ b/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/RemoteIdentifierFactoryTest.java
@@ -65,14 +65,13 @@ public class RemoteIdentifierFactoryTest {
final RemoteManagerFactory remoteManagerFactory = Tang.Factory.getTang().newInjector()
.getInstance(RemoteManagerFactory.class);
- final int port = 9100;
final Map<Class<?>, Codec<?>> clazzToCodecMap = new HashMap<>();
clazzToCodecMap.put(TestEvent.class, new TestEventCodec());
final Codec<?> codec = new MultiCodec<Object>(clazzToCodecMap);
try (final RemoteManager rm =
- remoteManagerFactory.getInstance("TestRemoteManager", port, codec, new LoggingEventHandler<Throwable>())) {
+ remoteManagerFactory.getInstance("TestRemoteManager", 0, codec, new LoggingEventHandler<Throwable>())) {
final RemoteIdentifier id = rm.getMyIdentifier();
final IdentifierFactory factory = new DefaultIdentifierFactory();
http://git-wip-us.apache.org/repos/asf/reef/blob/684774b9/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/RemoteManagerTest.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/RemoteManagerTest.java b/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/RemoteManagerTest.java
index 196d7d6..08426c0 100644
--- a/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/RemoteManagerTest.java
+++ b/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/RemoteManagerTest.java
@@ -67,7 +67,6 @@ public class RemoteManagerTest {
public final TestName name = new TestName();
private static final String LOG_PREFIX = "TEST ";
- private static final int PORT = 9100;
@Test
public void testRemoteManagerTest() throws Exception {
@@ -87,11 +86,10 @@ public class RemoteManagerTest {
final String hostAddress = localAddressProvider.getLocalAddress();
final RemoteManager rm = this.remoteManagerFactory.getInstance(
- "name", hostAddress, PORT, codec, new LoggingEventHandler<Throwable>(), false, 3, 10000,
+ "name", hostAddress, 0, codec, new LoggingEventHandler<Throwable>(), false, 3, 10000,
localAddressProvider, Tang.Factory.getTang().newInjector().getInstance(TcpPortProvider.class));
- final RemoteIdentifierFactory factory = new DefaultRemoteIdentifierFactoryImplementation();
- final RemoteIdentifier remoteId = factory.getNewInstance("socket://" + hostAddress + ":" + PORT);
+ final RemoteIdentifier remoteId = rm.getMyIdentifier();
Assert.assertTrue(rm.getMyIdentifier().equals(remoteId));
final EventHandler<StartEvent> proxyConnection = rm.getHandler(remoteId, StartEvent.class);
@@ -191,11 +189,10 @@ public class RemoteManagerTest {
final String hostAddress = localAddressProvider.getLocalAddress();
final RemoteManager rm = this.remoteManagerFactory.getInstance(
- "name", hostAddress, PORT, codec, new LoggingEventHandler<Throwable>(), true, 3, 10000,
+ "name", hostAddress, 0, codec, new LoggingEventHandler<Throwable>(), true, 3, 10000,
localAddressProvider, Tang.Factory.getTang().newInjector().getInstance(TcpPortProvider.class));
- final RemoteIdentifierFactory factory = new DefaultRemoteIdentifierFactoryImplementation();
- final RemoteIdentifier remoteId = factory.getNewInstance("socket://" + hostAddress + ":" + PORT);
+ final RemoteIdentifier remoteId = rm.getMyIdentifier();
final EventHandler<StartEvent> proxyConnection = rm.getHandler(remoteId, StartEvent.class);
final EventHandler<TestEvent1> proxyHandler1 = rm.getHandler(remoteId, TestEvent1.class);
@@ -235,11 +232,10 @@ public class RemoteManagerTest {
final String hostAddress = localAddressProvider.getLocalAddress();
final RemoteManager rm = this.remoteManagerFactory.getInstance(
- "name", hostAddress, PORT, codec, new LoggingEventHandler<Throwable>(), false, 3, 10000,
+ "name", hostAddress, 0, codec, new LoggingEventHandler<Throwable>(), false, 3, 10000,
localAddressProvider, Tang.Factory.getTang().newInjector().getInstance(TcpPortProvider.class));
- final RemoteIdentifierFactory factory = new DefaultRemoteIdentifierFactoryImplementation();
- final RemoteIdentifier remoteId = factory.getNewInstance("socket://" + hostAddress + ":" + PORT);
+ final RemoteIdentifier remoteId = rm.getMyIdentifier();
final EventHandler<TestEvent> proxyHandler = rm.getHandler(remoteId, TestEvent.class);
@@ -270,13 +266,10 @@ public class RemoteManagerTest {
clazzToCodecMap.put(TestEvent.class, new ObjectSerializableCodec<TestEvent>());
final Codec<?> codec = new MultiCodec<Object>(clazzToCodecMap);
- final String hostAddress = localAddressProvider.getLocalAddress();
-
final ExceptionHandler errorHandler = new ExceptionHandler(monitor);
- try (final RemoteManager rm = remoteManagerFactory.getInstance("name", PORT, codec, errorHandler)) {
- final RemoteIdentifierFactory factory = new DefaultRemoteIdentifierFactoryImplementation();
- final RemoteIdentifier remoteId = factory.getNewInstance("socket://" + hostAddress + ":" + PORT);
+ try (final RemoteManager rm = remoteManagerFactory.getInstance("name", 0, codec, errorHandler)) {
+ final RemoteIdentifier remoteId = rm.getMyIdentifier();
final EventHandler<StartEvent> proxyConnection = rm.getHandler(remoteId, StartEvent.class);
rm.registerHandler(StartEvent.class, new ExceptionGenEventHandler<StartEvent>("recvExceptionGen"));
http://git-wip-us.apache.org/repos/asf/reef/blob/684774b9/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/RemoteTest.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/RemoteTest.java b/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/RemoteTest.java
index bd5d472..1b88fa1 100644
--- a/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/RemoteTest.java
+++ b/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/RemoteTest.java
@@ -117,9 +117,6 @@ public class RemoteTest {
final Monitor monitor = new Monitor();
final TimerStage timer = new TimerStage(new TimeoutHandler(monitor), 5000, 5000);
- // port
- final int port = 9101;
-
// receiver stage
// decoder map
final Map<Class<?>, Decoder<?>> clazzToDecoderMap = new HashMap<>();
@@ -142,7 +139,10 @@ public class RemoteTest {
final String hostAddress = this.localAddressProvider.getLocalAddress();
// transport
- final Transport transport = tpFactory.newInstance(hostAddress, port, reRecvStage, reRecvStage, 1, 10000);
+ final Transport transport = tpFactory.newInstance(hostAddress, 0, reRecvStage, reRecvStage, 1, 10000);
+
+ // port
+ final int port = transport.getListeningPort();
// mux encoder with encoder map
final Map<Class<?>, Encoder<?>> clazzToEncoderMap = new HashMap<>();
http://git-wip-us.apache.org/repos/asf/reef/blob/684774b9/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/SmallMessagesTest.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/SmallMessagesTest.java b/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/SmallMessagesTest.java
index a2086d8..adedfdc 100644
--- a/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/SmallMessagesTest.java
+++ b/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/SmallMessagesTest.java
@@ -69,9 +69,6 @@ public class SmallMessagesTest {
final Monitor monitor = new Monitor();
final TimerStage timer = new TimerStage(new TimeoutHandler(monitor), 60000, 60000);
- // port
- final int port = 9101;
-
// receiver stage
// decoder map
final Map<Class<?>, Decoder<?>> clazzToDecoderMap = new HashMap<>();
@@ -94,7 +91,10 @@ public class SmallMessagesTest {
final String hostAddress = this.localAddressProvider.getLocalAddress();
// transport
- final Transport transport = tpFactory.newInstance(hostAddress, port, reRecvStage, reRecvStage, 1, 10000);
+ final Transport transport = tpFactory.newInstance(hostAddress, 0, reRecvStage, reRecvStage, 1, 10000);
+
+ // port
+ final int port = transport.getListeningPort();
// mux encoder with encoder map
final Map<Class<?>, Encoder<?>> clazzToEncoderMap = new HashMap<>();
http://git-wip-us.apache.org/repos/asf/reef/blob/684774b9/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/TestRemote.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/TestRemote.java b/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/TestRemote.java
index f7f40bc..69bb7dd 100644
--- a/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/TestRemote.java
+++ b/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/TestRemote.java
@@ -23,8 +23,6 @@ import org.apache.reef.tang.exceptions.InjectionException;
import org.apache.reef.wake.EventHandler;
import org.apache.reef.wake.impl.LoggingEventHandler;
import org.apache.reef.wake.remote.*;
-import org.apache.reef.wake.remote.address.LocalAddressProvider;
-import org.apache.reef.wake.remote.impl.DefaultRemoteIdentifierFactoryImplementation;
import javax.inject.Inject;
import java.net.UnknownHostException;
@@ -34,26 +32,19 @@ import java.net.UnknownHostException;
*/
public class TestRemote implements Runnable {
private final RemoteManagerFactory remoteManagerFactory;
- private final LocalAddressProvider localAddressProvider;
@Inject
- public TestRemote(final LocalAddressProvider localAddressProvider,
- final RemoteManagerFactory remoteManagerFactory) {
- this.localAddressProvider = localAddressProvider;
+ public TestRemote(final RemoteManagerFactory remoteManagerFactory) {
this.remoteManagerFactory = remoteManagerFactory;
}
@Override
public void run() {
- final String hostAddress = localAddressProvider.getLocalAddress();
- final int myPort = 10011;
- final int remotePort = 10001;
final Codec<TestEvent> codec = new TestEventCodec();
try (RemoteManager rm =
- remoteManagerFactory.getInstance("name", myPort, codec, new LoggingEventHandler<Throwable>())) {
+ remoteManagerFactory.getInstance("name", 0, codec, new LoggingEventHandler<Throwable>())) {
// proxy handler
- final RemoteIdentifierFactory factory = new DefaultRemoteIdentifierFactoryImplementation();
- final RemoteIdentifier remoteId = factory.getNewInstance("socket://" + hostAddress + ":" + remotePort);
+ final RemoteIdentifier remoteId = rm.getMyIdentifier();
final EventHandler<TestEvent> proxyHandler = rm.getHandler(remoteId, TestEvent.class);
proxyHandler.onNext(new TestEvent("hello", 1.0));
http://git-wip-us.apache.org/repos/asf/reef/blob/684774b9/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/TransportRaceTest.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/TransportRaceTest.java b/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/TransportRaceTest.java
index 1a76f4e..8c78ed6 100644
--- a/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/TransportRaceTest.java
+++ b/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/TransportRaceTest.java
@@ -68,9 +68,8 @@ public class TransportRaceTest {
final EStage<TransportEvent> serverStage = new ThreadPoolStage<>("server@7001",
serverHandler, 1, new LoggingEventHandler<Throwable>());
final String hostAddress = this.localAddressProvider.getLocalAddress();
- final int port = 7001;
- final Transport transport = tpFactory.newInstance(
- hostAddress, port, clientStage, serverStage, 1, 10000);
+ final Transport transport = tpFactory.newInstance(hostAddress, 0, clientStage, serverStage, 1, 10000);
+ final int port = transport.getListeningPort();
final String value = "Test Race";
http://git-wip-us.apache.org/repos/asf/reef/blob/684774b9/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/TransportTest.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/TransportTest.java b/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/TransportTest.java
index 1fbb5d9..5d5d4d7 100644
--- a/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/TransportTest.java
+++ b/lang/java/reef-wake/wake/src/test/java/org/apache/reef/wake/test/remote/TransportTest.java
@@ -71,12 +71,12 @@ public class TransportTest {
final int expected = 2;
final String hostAddress = this.localAddressProvider.getLocalAddress();
- final int port = 9100;
// Codec<String>
final ReceiverStage<String> stage =
new ReceiverStage<>(new ObjectSerializableCodec<String>(), monitor, expected);
- final Transport transport = tpFactory.newInstance(hostAddress, port, stage, stage, 1, 10000);
+ final Transport transport = tpFactory.newInstance(hostAddress, 0, stage, stage, 1, 10000);
+ final int port = transport.getListeningPort();
// sending side
final Link<String> link = transport.open(
@@ -103,12 +103,12 @@ public class TransportTest {
final int expected = 2;
final String hostAddress = this.localAddressProvider.getLocalAddress();
- final int port = 9100;
// Codec<TestEvent>
final ReceiverStage<TestEvent> stage =
new ReceiverStage<>(new ObjectSerializableCodec<TestEvent>(), monitor, expected);
- final Transport transport = tpFactory.newInstance(hostAddress, port, stage, stage, 1, 10000);
+ final Transport transport = tpFactory.newInstance(hostAddress, 0, stage, stage, 1, 10000);
+ final int port = transport.getListeningPort();
// sending side
final Link<TestEvent> link = transport.open(