@Test public void testTaskPullAtLaunching() { WrappedContainer wc = new WrappedContainer(); wc.launchContainer(); AMContainerTask pulledTask = wc.pullTaskToRun(); wc.verifyState(AMContainerState.LAUNCHING); wc.verifyNoOutgoingEvents(); assertFalse(pulledTask.shouldDie()); assertNull(pulledTask.getTask()); }
@Test // Assign before launch. public void tetSingleSuccessfulTaskFlow() { WrappedContainer wc = new WrappedContainer(); wc.verifyState(AMContainerState.ALLOCATED); // Launch request. wc.launchContainer(); wc.verifyState(AMContainerState.LAUNCHING); // 1 Launch request. wc.verifyCountAndGetOutgoingEvents(1); // Assign task. wc.assignTaskAttempt(wc.taskAttemptID); wc.verifyState(AMContainerState.LAUNCHING); wc.verifyNoOutgoingEvents(); assertEquals(wc.taskAttemptID, wc.amContainer.getQueuedTaskAttempts().get(0)); // Container Launched wc.containerLaunched(); wc.verifyState(AMContainerState.IDLE); wc.verifyNoOutgoingEvents(); assertEquals(wc.taskAttemptID, wc.amContainer.getQueuedTaskAttempts().get(0)); assertNull(wc.amContainer.getRunningTaskAttempt()); verify(wc.tal).registerRunningContainer(wc.containerID); verify(wc.chh).register(wc.containerID); // Pull TA AMContainerTask pulledTask = wc.pullTaskToRun(); wc.verifyState(AMContainerState.RUNNING); wc.verifyNoOutgoingEvents(); assertFalse(pulledTask.shouldDie()); assertEquals(wc.taskSpec.getTaskAttemptID(), pulledTask.getTask().getTaskAttemptID()); assertEquals(wc.taskAttemptID, wc.amContainer.getRunningTaskAttempt()); assertEquals(0, wc.amContainer.getQueuedTaskAttempts().size()); wc.taskAttemptSucceeded(wc.taskAttemptID); wc.verifyState(AMContainerState.IDLE); wc.verifyNoOutgoingEvents(); assertNull(wc.amContainer.getRunningTaskAttempt()); verify(wc.tal).unregisterTaskAttempt(wc.taskAttemptID); wc.containerCompleted(false); wc.verifyHistoryStopEvent(); wc.verifyState(AMContainerState.COMPLETED); wc.verifyNoOutgoingEvents(); verify(wc.tal).unregisterRunningContainer(wc.containerID); verify(wc.chh).unregister(wc.containerID); assertEquals(1, wc.amContainer.getAllTaskAttempts().size()); assertFalse(wc.amContainer.isInErrorState()); }