You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by al...@apache.org on 2017/12/04 13:40:01 UTC

flink git commit: [FLINK-8177] Replace TestingContainer by mock in YARN UtilsTest

Repository: flink
Updated Branches:
  refs/heads/master e7ca1055a -> aa1f83333


[FLINK-8177] Replace TestingContainer by mock in YARN UtilsTest

The Container Interface was extended in Hadoop 2.9, meaning that the
test would not run when compiling with Hadoop 2.9. Using a mock fixes
this problem.


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

Branch: refs/heads/master
Commit: aa1f83333f31c01d8fd4ae5bdaaf48c44aadc221
Parents: e7ca105
Author: Aljoscha Krettek <al...@gmail.com>
Authored: Wed Nov 29 17:04:20 2017 +0100
Committer: Aljoscha Krettek <al...@gmail.com>
Committed: Mon Dec 4 14:38:15 2017 +0100

----------------------------------------------------------------------
 .../java/org/apache/flink/yarn/UtilsTest.java   | 97 +++-----------------
 .../flink/yarn/YarnResourceManagerTest.java     | 43 +++------
 2 files changed, 22 insertions(+), 118 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flink/blob/aa1f8333/flink-yarn/src/test/java/org/apache/flink/yarn/UtilsTest.java
----------------------------------------------------------------------
diff --git a/flink-yarn/src/test/java/org/apache/flink/yarn/UtilsTest.java b/flink-yarn/src/test/java/org/apache/flink/yarn/UtilsTest.java
index ab7f93c..07f58dd 100644
--- a/flink-yarn/src/test/java/org/apache/flink/yarn/UtilsTest.java
+++ b/flink-yarn/src/test/java/org/apache/flink/yarn/UtilsTest.java
@@ -43,9 +43,6 @@ import org.apache.hadoop.yarn.api.records.Container;
 import org.apache.hadoop.yarn.api.records.ContainerId;
 import org.apache.hadoop.yarn.api.records.ContainerLaunchContext;
 import org.apache.hadoop.yarn.api.records.NodeId;
-import org.apache.hadoop.yarn.api.records.Priority;
-import org.apache.hadoop.yarn.api.records.Resource;
-import org.apache.hadoop.yarn.api.records.Token;
 import org.apache.hadoop.yarn.client.api.AMRMClient;
 import org.apache.hadoop.yarn.client.api.NMClient;
 import org.apache.hadoop.yarn.client.api.async.AMRMClientAsync;
@@ -74,10 +71,12 @@ import scala.concurrent.duration.FiniteDuration;
 import static org.junit.Assert.assertEquals;
 import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 /**
  * Tests for {@link Utils}.
  */
+
 public class UtilsTest extends TestLogger {
 
 	private static ActorSystem system;
@@ -119,7 +118,15 @@ public class UtilsTest extends TestLogger {
 			final List<Container> containerList = new ArrayList<>();
 
 			for (int i = 0; i < numInitialTaskManagers; i++) {
-				containerList.add(new TestingContainer("container", 1234, i));
+				Container mockContainer = mock(Container.class);
+				when(mockContainer.getId()).thenReturn(
+					ContainerId.newInstance(
+						ApplicationAttemptId.newInstance(
+							ApplicationId.newInstance(System.currentTimeMillis(), 1),
+							1),
+						i));
+				when(mockContainer.getNodeId()).thenReturn(NodeId.newInstance("container", 1234));
+				containerList.add(mockContainer);
 			}
 
 			doAnswer(new Answer() {
@@ -235,86 +242,4 @@ public class UtilsTest extends TestLogger {
 			}
 		}};
 	}
-
-	static class TestingContainer extends Container {
-
-		private final NodeId nodeId;
-		private final ContainerId containerId;
-
-		TestingContainer(String host, int port, int containerId) {
-			this.nodeId = NodeId.newInstance(host, port);
-			this.containerId = ContainerId.newInstance(
-				ApplicationAttemptId.newInstance(
-					ApplicationId.newInstance(
-						System.currentTimeMillis(),
-						1),
-					1),
-				containerId);
-		}
-
-		@Override
-		public ContainerId getId() {
-			return containerId;
-		}
-
-		@Override
-		public void setId(ContainerId containerId) {
-
-		}
-
-		@Override
-		public NodeId getNodeId() {
-			return nodeId;
-		}
-
-		@Override
-		public void setNodeId(NodeId nodeId) {
-
-		}
-
-		@Override
-		public String getNodeHttpAddress() {
-			return null;
-		}
-
-		@Override
-		public void setNodeHttpAddress(String s) {
-
-		}
-
-		@Override
-		public Resource getResource() {
-			return null;
-		}
-
-		@Override
-		public void setResource(Resource resource) {
-
-		}
-
-		@Override
-		public Priority getPriority() {
-			return null;
-		}
-
-		@Override
-		public void setPriority(Priority priority) {
-
-		}
-
-		@Override
-		public Token getContainerToken() {
-			return null;
-		}
-
-		@Override
-		public void setContainerToken(Token token) {
-
-		}
-
-		@Override
-		public int compareTo(Container o) {
-			return 0;
-		}
-	}
 }

http://git-wip-us.apache.org/repos/asf/flink/blob/aa1f8333/flink-yarn/src/test/java/org/apache/flink/yarn/YarnResourceManagerTest.java
----------------------------------------------------------------------
diff --git a/flink-yarn/src/test/java/org/apache/flink/yarn/YarnResourceManagerTest.java b/flink-yarn/src/test/java/org/apache/flink/yarn/YarnResourceManagerTest.java
index 18a358f..031a4cb 100644
--- a/flink-yarn/src/test/java/org/apache/flink/yarn/YarnResourceManagerTest.java
+++ b/flink-yarn/src/test/java/org/apache/flink/yarn/YarnResourceManagerTest.java
@@ -93,6 +93,7 @@ import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 /**
  * General tests for the YARN resource manager component.
@@ -288,35 +289,6 @@ public class YarnResourceManagerTest extends TestLogger {
 		}
 	}
 
-	static class TestContainer extends UtilsTest.TestingContainer {
-		Resource resource;
-		Priority priority;
-
-		TestContainer(String host, int port, int containerId) {
-			super(host, port, containerId);
-		}
-
-		@Override
-		public Resource getResource() {
-			return resource;
-		}
-
-		@Override
-		public void setResource(Resource resource) {
-			this.resource = resource;
-		}
-
-		@Override
-		public Priority getPriority() {
-			return priority;
-		}
-
-		@Override
-		public void setPriority(Priority priority) {
-			this.priority = priority;
-		}
-	}
-
 	@Test
 	public void testStopWorker() throws Exception {
 		new Context() {{
@@ -332,9 +304,16 @@ public class YarnResourceManagerTest extends TestLogger {
 			registerSlotRequestFuture.get();
 
 			// Callback from YARN when container is allocated.
-			Container testingContainer = new TestContainer(taskHost, 1234, 1);
-			testingContainer.setResource(Resource.newInstance(200, 1));
-			testingContainer.setPriority(Priority.UNDEFINED);
+			Container testingContainer = mock(Container.class);
+			when(testingContainer.getId()).thenReturn(
+				ContainerId.newInstance(
+					ApplicationAttemptId.newInstance(
+						ApplicationId.newInstance(System.currentTimeMillis(), 1),
+						1),
+					1));
+			when(testingContainer.getNodeId()).thenReturn(NodeId.newInstance("container", 1234));
+			when(testingContainer.getResource()).thenReturn(Resource.newInstance(200, 1));
+			when(testingContainer.getPriority()).thenReturn(Priority.UNDEFINED);
 			resourceManager.onContainersAllocated(ImmutableList.of(testingContainer));
 			verify(mockResourceManagerClient).addContainerRequest(any(AMRMClient.ContainerRequest.class));
 			verify(mockNMClient).startContainer(eq(testingContainer), any(ContainerLaunchContext.class));