MAPREDUCE-5334. Fix failing unit tests - TestContainerLauncher, TestContainerLauncherImpl. Contributed by Vinod Kumar Vavilapalli.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1494820 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
be3a8b6636
commit
84862b54aa
@ -552,6 +552,9 @@ Release 2.1.0-beta - UNRELEASED
|
|||||||
MAPREDUCE-4019. -list-attempt-ids is not working (Ashwin Shankar,
|
MAPREDUCE-4019. -list-attempt-ids is not working (Ashwin Shankar,
|
||||||
Devaraj K, and B Anil Kumar via jlowe)
|
Devaraj K, and B Anil Kumar via jlowe)
|
||||||
|
|
||||||
|
MAPREDUCE-5334. Fix failing unit tests - TestContainerLauncher,
|
||||||
|
TestContainerLauncherImpl. (Vinod Kumar Vavilapalli via sseth)
|
||||||
|
|
||||||
BREAKDOWN OF HADOOP-8562 SUBTASKS
|
BREAKDOWN OF HADOOP-8562 SUBTASKS
|
||||||
|
|
||||||
MAPREDUCE-4739. Some MapReduce tests fail to find winutils.
|
MAPREDUCE-4739. Some MapReduce tests fail to find winutils.
|
||||||
|
@ -41,12 +41,8 @@
|
|||||||
import org.apache.hadoop.mapreduce.v2.app.job.event.TaskAttemptDiagnosticsUpdateEvent;
|
import org.apache.hadoop.mapreduce.v2.app.job.event.TaskAttemptDiagnosticsUpdateEvent;
|
||||||
import org.apache.hadoop.mapreduce.v2.app.job.event.TaskAttemptEvent;
|
import org.apache.hadoop.mapreduce.v2.app.job.event.TaskAttemptEvent;
|
||||||
import org.apache.hadoop.mapreduce.v2.app.job.event.TaskAttemptEventType;
|
import org.apache.hadoop.mapreduce.v2.app.job.event.TaskAttemptEventType;
|
||||||
import org.apache.hadoop.net.NetUtils;
|
|
||||||
import org.apache.hadoop.security.UserGroupInformation;
|
|
||||||
import org.apache.hadoop.security.token.Token;
|
|
||||||
import org.apache.hadoop.service.AbstractService;
|
import org.apache.hadoop.service.AbstractService;
|
||||||
import org.apache.hadoop.util.StringUtils;
|
import org.apache.hadoop.util.StringUtils;
|
||||||
import org.apache.hadoop.yarn.api.ContainerManagementProtocol;
|
|
||||||
import org.apache.hadoop.yarn.api.protocolrecords.StartContainerRequest;
|
import org.apache.hadoop.yarn.api.protocolrecords.StartContainerRequest;
|
||||||
import org.apache.hadoop.yarn.api.protocolrecords.StartContainerResponse;
|
import org.apache.hadoop.yarn.api.protocolrecords.StartContainerResponse;
|
||||||
import org.apache.hadoop.yarn.api.protocolrecords.StopContainerRequest;
|
import org.apache.hadoop.yarn.api.protocolrecords.StopContainerRequest;
|
||||||
@ -55,9 +51,6 @@
|
|||||||
import org.apache.hadoop.yarn.client.api.impl.ContainerManagementProtocolProxy;
|
import org.apache.hadoop.yarn.client.api.impl.ContainerManagementProtocolProxy;
|
||||||
import org.apache.hadoop.yarn.client.api.impl.ContainerManagementProtocolProxy.ContainerManagementProtocolProxyData;
|
import org.apache.hadoop.yarn.client.api.impl.ContainerManagementProtocolProxy.ContainerManagementProtocolProxyData;
|
||||||
import org.apache.hadoop.yarn.exceptions.YarnRuntimeException;
|
import org.apache.hadoop.yarn.exceptions.YarnRuntimeException;
|
||||||
import org.apache.hadoop.yarn.ipc.YarnRPC;
|
|
||||||
import org.apache.hadoop.yarn.security.ContainerTokenIdentifier;
|
|
||||||
import org.apache.hadoop.yarn.util.ConverterUtils;
|
|
||||||
import org.apache.hadoop.yarn.util.Records;
|
import org.apache.hadoop.yarn.util.Records;
|
||||||
|
|
||||||
import com.google.common.util.concurrent.ThreadFactoryBuilder;
|
import com.google.common.util.concurrent.ThreadFactoryBuilder;
|
||||||
@ -393,8 +386,9 @@ public void handle(ContainerLauncherEvent event) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ContainerManagementProtocolProxy.ContainerManagementProtocolProxyData getCMProxy(
|
public ContainerManagementProtocolProxy.ContainerManagementProtocolProxyData
|
||||||
String containerMgrBindAddr, ContainerId containerId) throws IOException {
|
getCMProxy(String containerMgrBindAddr, ContainerId containerId)
|
||||||
|
throws IOException {
|
||||||
return cmProxy.getProxy(containerMgrBindAddr, containerId);
|
return cmProxy.getProxy(containerMgrBindAddr, containerId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.lang.reflect.UndeclaredThrowableException;
|
import java.lang.reflect.UndeclaredThrowableException;
|
||||||
import java.net.InetSocketAddress;
|
import java.net.InetSocketAddress;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.ThreadPoolExecutor;
|
import java.util.concurrent.ThreadPoolExecutor;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
@ -32,6 +33,7 @@
|
|||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.apache.hadoop.conf.Configuration;
|
import org.apache.hadoop.conf.Configuration;
|
||||||
|
import org.apache.hadoop.fs.CommonConfigurationKeysPublic;
|
||||||
import org.apache.hadoop.ipc.Server;
|
import org.apache.hadoop.ipc.Server;
|
||||||
import org.apache.hadoop.mapreduce.MRJobConfig;
|
import org.apache.hadoop.mapreduce.MRJobConfig;
|
||||||
import org.apache.hadoop.mapreduce.v2.api.records.JobId;
|
import org.apache.hadoop.mapreduce.v2.api.records.JobId;
|
||||||
@ -61,6 +63,7 @@
|
|||||||
import org.apache.hadoop.yarn.api.records.ContainerId;
|
import org.apache.hadoop.yarn.api.records.ContainerId;
|
||||||
import org.apache.hadoop.yarn.api.records.ContainerState;
|
import org.apache.hadoop.yarn.api.records.ContainerState;
|
||||||
import org.apache.hadoop.yarn.api.records.ContainerStatus;
|
import org.apache.hadoop.yarn.api.records.ContainerStatus;
|
||||||
|
import org.apache.hadoop.yarn.api.records.NodeId;
|
||||||
import org.apache.hadoop.yarn.api.records.Token;
|
import org.apache.hadoop.yarn.api.records.Token;
|
||||||
import org.apache.hadoop.yarn.client.api.impl.ContainerManagementProtocolProxy;
|
import org.apache.hadoop.yarn.client.api.impl.ContainerManagementProtocolProxy;
|
||||||
import org.apache.hadoop.yarn.client.api.impl.ContainerManagementProtocolProxy.ContainerManagementProtocolProxyData;
|
import org.apache.hadoop.yarn.client.api.impl.ContainerManagementProtocolProxy.ContainerManagementProtocolProxyData;
|
||||||
@ -70,7 +73,9 @@
|
|||||||
import org.apache.hadoop.yarn.ipc.HadoopYarnProtoRPC;
|
import org.apache.hadoop.yarn.ipc.HadoopYarnProtoRPC;
|
||||||
import org.apache.hadoop.yarn.ipc.YarnRPC;
|
import org.apache.hadoop.yarn.ipc.YarnRPC;
|
||||||
import org.apache.hadoop.yarn.security.ContainerTokenIdentifier;
|
import org.apache.hadoop.yarn.security.ContainerTokenIdentifier;
|
||||||
import org.apache.hadoop.yarn.security.NMTokenIdentifier;
|
import org.apache.hadoop.yarn.server.api.records.MasterKey;
|
||||||
|
import org.apache.hadoop.yarn.server.nodemanager.security.NMTokenSecretManagerInNM;
|
||||||
|
import org.apache.hadoop.yarn.util.Records;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
public class TestContainerLauncher {
|
public class TestContainerLauncher {
|
||||||
@ -82,7 +87,7 @@ public class TestContainerLauncher {
|
|||||||
|
|
||||||
static final Log LOG = LogFactory.getLog(TestContainerLauncher.class);
|
static final Log LOG = LogFactory.getLog(TestContainerLauncher.class);
|
||||||
|
|
||||||
@Test
|
@Test (timeout = 5000)
|
||||||
public void testPoolSize() throws InterruptedException {
|
public void testPoolSize() throws InterruptedException {
|
||||||
|
|
||||||
ApplicationId appId = ApplicationId.newInstance(12345, 67);
|
ApplicationId appId = ApplicationId.newInstance(12345, 67);
|
||||||
@ -158,7 +163,7 @@ public void testPoolSize() throws InterruptedException {
|
|||||||
containerLauncher.stop();
|
containerLauncher.stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test(timeout = 5000)
|
||||||
public void testPoolLimits() throws InterruptedException {
|
public void testPoolLimits() throws InterruptedException {
|
||||||
ApplicationId appId = ApplicationId.newInstance(12345, 67);
|
ApplicationId appId = ApplicationId.newInstance(12345, 67);
|
||||||
ApplicationAttemptId appAttemptId = ApplicationAttemptId.newInstance(
|
ApplicationAttemptId appAttemptId = ApplicationAttemptId.newInstance(
|
||||||
@ -222,7 +227,7 @@ private void waitForEvents(CustomContainerLauncher containerLauncher,
|
|||||||
containerLauncher.numEventsProcessing.get());
|
containerLauncher.numEventsProcessing.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test(timeout = 15000)
|
||||||
public void testSlowNM() throws Exception {
|
public void testSlowNM() throws Exception {
|
||||||
|
|
||||||
conf = new Configuration();
|
conf = new Configuration();
|
||||||
@ -235,11 +240,19 @@ public void testSlowNM() throws Exception {
|
|||||||
YarnRPC rpc = YarnRPC.create(conf);
|
YarnRPC rpc = YarnRPC.create(conf);
|
||||||
String bindAddr = "localhost:0";
|
String bindAddr = "localhost:0";
|
||||||
InetSocketAddress addr = NetUtils.createSocketAddr(bindAddr);
|
InetSocketAddress addr = NetUtils.createSocketAddr(bindAddr);
|
||||||
server = rpc.getServer(ContainerManagementProtocol.class, new DummyContainerManager(),
|
NMTokenSecretManagerInNM tokenSecretManager =
|
||||||
addr, conf, null, 1);
|
new NMTokenSecretManagerInNM();
|
||||||
|
MasterKey masterKey = Records.newRecord(MasterKey.class);
|
||||||
|
masterKey.setBytes(ByteBuffer.wrap("key".getBytes()));
|
||||||
|
tokenSecretManager.setMasterKey(masterKey);
|
||||||
|
conf.set(CommonConfigurationKeysPublic.HADOOP_SECURITY_AUTHENTICATION,
|
||||||
|
"token");
|
||||||
|
server =
|
||||||
|
rpc.getServer(ContainerManagementProtocol.class,
|
||||||
|
new DummyContainerManager(), addr, conf, tokenSecretManager, 1);
|
||||||
server.start();
|
server.start();
|
||||||
|
|
||||||
MRApp app = new MRAppWithSlowNM();
|
MRApp app = new MRAppWithSlowNM(tokenSecretManager);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Job job = app.submit(conf);
|
Job job = app.submit(conf);
|
||||||
@ -340,8 +353,10 @@ protected ContainerLauncherImpl.EventProcessor createEventProcessor(
|
|||||||
|
|
||||||
private class MRAppWithSlowNM extends MRApp {
|
private class MRAppWithSlowNM extends MRApp {
|
||||||
|
|
||||||
public MRAppWithSlowNM() {
|
private NMTokenSecretManagerInNM tokenSecretManager;
|
||||||
|
public MRAppWithSlowNM(NMTokenSecretManagerInNM tokenSecretManager) {
|
||||||
super(1, 0, false, "TestContainerLauncher", true);
|
super(1, 0, false, "TestContainerLauncher", true);
|
||||||
|
this.tokenSecretManager = tokenSecretManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -353,18 +368,19 @@ public MRAppWithSlowNM() {
|
|||||||
public ContainerManagementProtocolProxyData getCMProxy(
|
public ContainerManagementProtocolProxyData getCMProxy(
|
||||||
String containerMgrBindAddr, ContainerId containerId)
|
String containerMgrBindAddr, ContainerId containerId)
|
||||||
throws IOException {
|
throws IOException {
|
||||||
Token dummyToken =
|
InetSocketAddress addr = NetUtils.getConnectAddress(server);
|
||||||
Token.newInstance("NMTokenIdentifier".getBytes(),
|
String containerManagerBindAddr =
|
||||||
NMTokenIdentifier.KIND.toString(), "password".getBytes(),
|
addr.getHostName() + ":" + addr.getPort();
|
||||||
"NMToken");
|
Token token =
|
||||||
|
tokenSecretManager.createNMToken(
|
||||||
|
containerId.getApplicationAttemptId(),
|
||||||
|
NodeId.newInstance(addr.getHostName(), addr.getPort()), "user");
|
||||||
ContainerManagementProtocolProxy cmProxy =
|
ContainerManagementProtocolProxy cmProxy =
|
||||||
new ContainerManagementProtocolProxy(conf, context.getNMTokens());
|
new ContainerManagementProtocolProxy(conf, context.getNMTokens());
|
||||||
InetSocketAddress addr = NetUtils.getConnectAddress(server);
|
|
||||||
ContainerManagementProtocolProxyData proxy =
|
ContainerManagementProtocolProxyData proxy =
|
||||||
cmProxy.new ContainerManagementProtocolProxyData(
|
cmProxy.new ContainerManagementProtocolProxyData(
|
||||||
YarnRPC.create(conf),
|
YarnRPC.create(conf), containerManagerBindAddr, containerId,
|
||||||
addr.getHostName() + ":" + addr.getPort(), containerId,
|
token);
|
||||||
dummyToken);
|
|
||||||
return proxy;
|
return proxy;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -18,7 +18,6 @@
|
|||||||
package org.apache.hadoop.mapreduce.v2.app.launcher;
|
package org.apache.hadoop.mapreduce.v2.app.launcher;
|
||||||
|
|
||||||
import static org.mockito.Matchers.any;
|
import static org.mockito.Matchers.any;
|
||||||
import static org.mockito.Matchers.eq;
|
|
||||||
import static org.mockito.Mockito.atLeast;
|
import static org.mockito.Mockito.atLeast;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.never;
|
import static org.mockito.Mockito.never;
|
||||||
@ -26,7 +25,6 @@
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.InetSocketAddress;
|
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -59,12 +57,12 @@
|
|||||||
import org.apache.hadoop.yarn.api.records.NodeId;
|
import org.apache.hadoop.yarn.api.records.NodeId;
|
||||||
import org.apache.hadoop.yarn.api.records.Resource;
|
import org.apache.hadoop.yarn.api.records.Resource;
|
||||||
import org.apache.hadoop.yarn.api.records.Token;
|
import org.apache.hadoop.yarn.api.records.Token;
|
||||||
|
import org.apache.hadoop.yarn.client.api.impl.ContainerManagementProtocolProxy.ContainerManagementProtocolProxyData;
|
||||||
import org.apache.hadoop.yarn.event.Event;
|
import org.apache.hadoop.yarn.event.Event;
|
||||||
import org.apache.hadoop.yarn.event.EventHandler;
|
import org.apache.hadoop.yarn.event.EventHandler;
|
||||||
import org.apache.hadoop.yarn.exceptions.YarnException;
|
import org.apache.hadoop.yarn.exceptions.YarnException;
|
||||||
import org.apache.hadoop.yarn.factories.RecordFactory;
|
import org.apache.hadoop.yarn.factories.RecordFactory;
|
||||||
import org.apache.hadoop.yarn.factory.providers.RecordFactoryProvider;
|
import org.apache.hadoop.yarn.factory.providers.RecordFactoryProvider;
|
||||||
import org.apache.hadoop.yarn.ipc.YarnRPC;
|
|
||||||
import org.apache.hadoop.yarn.security.ContainerTokenIdentifier;
|
import org.apache.hadoop.yarn.security.ContainerTokenIdentifier;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@ -88,13 +86,25 @@ public void setup() throws IOException {
|
|||||||
private static class ContainerLauncherImplUnderTest extends
|
private static class ContainerLauncherImplUnderTest extends
|
||||||
ContainerLauncherImpl {
|
ContainerLauncherImpl {
|
||||||
|
|
||||||
private YarnRPC rpc;
|
private ContainerManagementProtocol containerManager;
|
||||||
|
|
||||||
public ContainerLauncherImplUnderTest(AppContext context, YarnRPC rpc) {
|
public ContainerLauncherImplUnderTest(AppContext context,
|
||||||
|
ContainerManagementProtocol containerManager) {
|
||||||
super(context);
|
super(context);
|
||||||
this.rpc = rpc;
|
this.containerManager = containerManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ContainerManagementProtocolProxyData getCMProxy(
|
||||||
|
String containerMgrBindAddr, ContainerId containerId)
|
||||||
|
throws IOException {
|
||||||
|
ContainerManagementProtocolProxyData protocolProxy =
|
||||||
|
mock(ContainerManagementProtocolProxyData.class);
|
||||||
|
when(protocolProxy.getContainerManagementProtocol()).thenReturn(
|
||||||
|
containerManager);
|
||||||
|
return protocolProxy;
|
||||||
|
}
|
||||||
|
|
||||||
public void waitForPoolToIdle() throws InterruptedException {
|
public void waitForPoolToIdle() throws InterruptedException {
|
||||||
//I wish that we did not need the sleep, but it is here so that we are sure
|
//I wish that we did not need the sleep, but it is here so that we are sure
|
||||||
// That the other thread had time to insert the event into the queue and
|
// That the other thread had time to insert the event into the queue and
|
||||||
@ -133,22 +143,18 @@ public static TaskAttemptId makeTaskAttemptId(long ts, int appId, int taskId,
|
|||||||
return MRBuilderUtils.newTaskAttemptId(tID, id);
|
return MRBuilderUtils.newTaskAttemptId(tID, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test(timeout = 5000)
|
||||||
public void testHandle() throws Exception {
|
public void testHandle() throws Exception {
|
||||||
LOG.info("STARTING testHandle");
|
LOG.info("STARTING testHandle");
|
||||||
YarnRPC mockRpc = mock(YarnRPC.class);
|
|
||||||
AppContext mockContext = mock(AppContext.class);
|
AppContext mockContext = mock(AppContext.class);
|
||||||
@SuppressWarnings("rawtypes")
|
@SuppressWarnings("rawtypes")
|
||||||
EventHandler mockEventHandler = mock(EventHandler.class);
|
EventHandler mockEventHandler = mock(EventHandler.class);
|
||||||
when(mockContext.getEventHandler()).thenReturn(mockEventHandler);
|
when(mockContext.getEventHandler()).thenReturn(mockEventHandler);
|
||||||
|
String cmAddress = "127.0.0.1:8000";
|
||||||
ContainerManagementProtocol mockCM = mock(ContainerManagementProtocol.class);
|
ContainerManagementProtocol mockCM =
|
||||||
when(mockRpc.getProxy(eq(ContainerManagementProtocol.class),
|
mock(ContainerManagementProtocol.class);
|
||||||
any(InetSocketAddress.class), any(Configuration.class)))
|
ContainerLauncherImplUnderTest ut =
|
||||||
.thenReturn(mockCM);
|
new ContainerLauncherImplUnderTest(mockContext, mockCM);
|
||||||
|
|
||||||
ContainerLauncherImplUnderTest ut =
|
|
||||||
new ContainerLauncherImplUnderTest(mockContext, mockRpc);
|
|
||||||
|
|
||||||
Configuration conf = new Configuration();
|
Configuration conf = new Configuration();
|
||||||
ut.init(conf);
|
ut.init(conf);
|
||||||
@ -156,7 +162,6 @@ public void testHandle() throws Exception {
|
|||||||
try {
|
try {
|
||||||
ContainerId contId = makeContainerId(0l, 0, 0, 1);
|
ContainerId contId = makeContainerId(0l, 0, 0, 1);
|
||||||
TaskAttemptId taskAttemptId = makeTaskAttemptId(0l, 0, 0, TaskType.MAP, 0);
|
TaskAttemptId taskAttemptId = makeTaskAttemptId(0l, 0, 0, TaskType.MAP, 0);
|
||||||
String cmAddress = "127.0.0.1:8000";
|
|
||||||
StartContainerResponse startResp =
|
StartContainerResponse startResp =
|
||||||
recordFactory.newRecordInstance(StartContainerResponse.class);
|
recordFactory.newRecordInstance(StartContainerResponse.class);
|
||||||
startResp.setAllServicesMetaData(serviceResponse);
|
startResp.setAllServicesMetaData(serviceResponse);
|
||||||
@ -199,22 +204,18 @@ public void testHandle() throws Exception {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test(timeout = 5000)
|
||||||
public void testOutOfOrder() throws Exception {
|
public void testOutOfOrder() throws Exception {
|
||||||
LOG.info("STARTING testOutOfOrder");
|
LOG.info("STARTING testOutOfOrder");
|
||||||
YarnRPC mockRpc = mock(YarnRPC.class);
|
|
||||||
AppContext mockContext = mock(AppContext.class);
|
AppContext mockContext = mock(AppContext.class);
|
||||||
@SuppressWarnings("rawtypes")
|
@SuppressWarnings("rawtypes")
|
||||||
EventHandler mockEventHandler = mock(EventHandler.class);
|
EventHandler mockEventHandler = mock(EventHandler.class);
|
||||||
when(mockContext.getEventHandler()).thenReturn(mockEventHandler);
|
when(mockContext.getEventHandler()).thenReturn(mockEventHandler);
|
||||||
|
|
||||||
ContainerManagementProtocol mockCM = mock(ContainerManagementProtocol.class);
|
ContainerManagementProtocol mockCM =
|
||||||
when(mockRpc.getProxy(eq(ContainerManagementProtocol.class),
|
mock(ContainerManagementProtocol.class);
|
||||||
any(InetSocketAddress.class), any(Configuration.class)))
|
ContainerLauncherImplUnderTest ut =
|
||||||
.thenReturn(mockCM);
|
new ContainerLauncherImplUnderTest(mockContext, mockCM);
|
||||||
|
|
||||||
ContainerLauncherImplUnderTest ut =
|
|
||||||
new ContainerLauncherImplUnderTest(mockContext, mockRpc);
|
|
||||||
|
|
||||||
Configuration conf = new Configuration();
|
Configuration conf = new Configuration();
|
||||||
ut.init(conf);
|
ut.init(conf);
|
||||||
@ -264,23 +265,19 @@ public void testOutOfOrder() throws Exception {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test(timeout = 5000)
|
||||||
public void testMyShutdown() throws Exception {
|
public void testMyShutdown() throws Exception {
|
||||||
LOG.info("in test Shutdown");
|
LOG.info("in test Shutdown");
|
||||||
|
|
||||||
YarnRPC mockRpc = mock(YarnRPC.class);
|
|
||||||
AppContext mockContext = mock(AppContext.class);
|
AppContext mockContext = mock(AppContext.class);
|
||||||
@SuppressWarnings("rawtypes")
|
@SuppressWarnings("rawtypes")
|
||||||
EventHandler mockEventHandler = mock(EventHandler.class);
|
EventHandler mockEventHandler = mock(EventHandler.class);
|
||||||
when(mockContext.getEventHandler()).thenReturn(mockEventHandler);
|
when(mockContext.getEventHandler()).thenReturn(mockEventHandler);
|
||||||
|
|
||||||
ContainerManagementProtocol mockCM = mock(ContainerManagementProtocol.class);
|
ContainerManagementProtocol mockCM =
|
||||||
when(mockRpc.getProxy(eq(ContainerManagementProtocol.class),
|
mock(ContainerManagementProtocol.class);
|
||||||
any(InetSocketAddress.class), any(Configuration.class)))
|
|
||||||
.thenReturn(mockCM);
|
|
||||||
|
|
||||||
ContainerLauncherImplUnderTest ut =
|
ContainerLauncherImplUnderTest ut =
|
||||||
new ContainerLauncherImplUnderTest(mockContext, mockRpc);
|
new ContainerLauncherImplUnderTest(mockContext, mockCM);
|
||||||
|
|
||||||
Configuration conf = new Configuration();
|
Configuration conf = new Configuration();
|
||||||
ut.init(conf);
|
ut.init(conf);
|
||||||
@ -320,26 +317,22 @@ public void testMyShutdown() throws Exception {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
@SuppressWarnings({ "rawtypes", "unchecked" })
|
||||||
@Test
|
@Test(timeout = 5000)
|
||||||
public void testContainerCleaned() throws Exception {
|
public void testContainerCleaned() throws Exception {
|
||||||
LOG.info("STARTING testContainerCleaned");
|
LOG.info("STARTING testContainerCleaned");
|
||||||
|
|
||||||
CyclicBarrier startLaunchBarrier = new CyclicBarrier(2);
|
CyclicBarrier startLaunchBarrier = new CyclicBarrier(2);
|
||||||
CyclicBarrier completeLaunchBarrier = new CyclicBarrier(2);
|
CyclicBarrier completeLaunchBarrier = new CyclicBarrier(2);
|
||||||
|
|
||||||
YarnRPC mockRpc = mock(YarnRPC.class);
|
|
||||||
AppContext mockContext = mock(AppContext.class);
|
AppContext mockContext = mock(AppContext.class);
|
||||||
|
|
||||||
EventHandler mockEventHandler = mock(EventHandler.class);
|
EventHandler mockEventHandler = mock(EventHandler.class);
|
||||||
when(mockContext.getEventHandler()).thenReturn(mockEventHandler);
|
when(mockContext.getEventHandler()).thenReturn(mockEventHandler);
|
||||||
|
|
||||||
ContainerManagementProtocol mockCM = new ContainerManagerForTest(startLaunchBarrier, completeLaunchBarrier);
|
ContainerManagementProtocol mockCM =
|
||||||
when(mockRpc.getProxy(eq(ContainerManagementProtocol.class),
|
new ContainerManagerForTest(startLaunchBarrier, completeLaunchBarrier);
|
||||||
any(InetSocketAddress.class), any(Configuration.class)))
|
ContainerLauncherImplUnderTest ut =
|
||||||
.thenReturn(mockCM);
|
new ContainerLauncherImplUnderTest(mockContext, mockCM);
|
||||||
|
|
||||||
ContainerLauncherImplUnderTest ut =
|
|
||||||
new ContainerLauncherImplUnderTest(mockContext, mockRpc);
|
|
||||||
|
|
||||||
Configuration conf = new Configuration();
|
Configuration conf = new Configuration();
|
||||||
ut.init(conf);
|
ut.init(conf);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user