SLIDER-622 process exit codes
Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/1d8f3189 Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/1d8f3189 Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/1d8f3189 Branch: refs/heads/develop Commit: 1d8f3189d5edec52fffa858dad6b98ba4c89767c Parents: 81402ed Author: Steve Loughran <[email protected]> Authored: Mon Nov 10 20:55:16 2014 +0000 Committer: Steve Loughran <[email protected]> Committed: Mon Nov 10 20:55:16 2014 +0000 ---------------------------------------------------------------------- .../services/workflow/ForkedProcessService.java | 2 +- .../server/appmaster/actions/TestActions.groovy | 2 +- .../apache/slider/test/SliderTestUtils.groovy | 13 +++++++++++-- .../TestWorkflowForkedProcessService.java | 19 ++++++++++++------- 4 files changed, 25 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/1d8f3189/slider-core/src/main/java/org/apache/slider/server/services/workflow/ForkedProcessService.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/services/workflow/ForkedProcessService.java b/slider-core/src/main/java/org/apache/slider/server/services/workflow/ForkedProcessService.java index b801993..9f6b327 100644 --- a/slider-core/src/main/java/org/apache/slider/server/services/workflow/ForkedProcessService.java +++ b/slider-core/src/main/java/org/apache/slider/server/services/workflow/ForkedProcessService.java @@ -264,7 +264,7 @@ public class ForkedProcessService } - public int getExitCode() { + public Integer getExitCode() { return process.getExitCode(); } http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/1d8f3189/slider-core/src/test/groovy/org/apache/slider/server/appmaster/actions/TestActions.groovy ---------------------------------------------------------------------- diff --git a/slider-core/src/test/groovy/org/apache/slider/server/appmaster/actions/TestActions.groovy b/slider-core/src/test/groovy/org/apache/slider/server/appmaster/actions/TestActions.groovy index 7e03e7b..a3a0025 100644 --- a/slider-core/src/test/groovy/org/apache/slider/server/appmaster/actions/TestActions.groovy +++ b/slider-core/src/test/groovy/org/apache/slider/server/appmaster/actions/TestActions.groovy @@ -191,7 +191,7 @@ class TestActions { queues.renewing("note", renewer) assert queues.removeRenewingAction("note") queues.stop() - queues.waitForServiceToStop(10000) + assert queues.waitForServiceToStop(10000) } public class ActionNoteExecuted extends AsyncAction { http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/1d8f3189/slider-core/src/test/groovy/org/apache/slider/test/SliderTestUtils.groovy ---------------------------------------------------------------------- diff --git a/slider-core/src/test/groovy/org/apache/slider/test/SliderTestUtils.groovy b/slider-core/src/test/groovy/org/apache/slider/test/SliderTestUtils.groovy index ad18c72..3688644 100644 --- a/slider-core/src/test/groovy/org/apache/slider/test/SliderTestUtils.groovy +++ b/slider-core/src/test/groovy/org/apache/slider/test/SliderTestUtils.groovy @@ -51,6 +51,8 @@ import org.apache.slider.server.services.workflow.ForkedProcessService import org.junit.Assert import org.junit.Assume +import java.util.concurrent.TimeoutException + import static Arguments.ARG_OPTION /** @@ -530,7 +532,10 @@ class SliderTestUtils extends Assert { */ public static ForkedProcessService exec(int status, List<String> commands) { ForkedProcessService process = exec(commands) - assert status == process.exitCode + + def exitCode = process.exitCode + assert exitCode != null + assert status == exitCode return process } /** @@ -546,7 +551,11 @@ class SliderTestUtils extends Assert { commands); process.init(new Configuration()); process.start(); - process.waitForServiceToStop(10000); + int timeoutMillis = 5000 + if (!process.waitForServiceToStop(timeoutMillis)) { + throw new TimeoutException( + "Process did not stop in " + timeoutMillis + "mS"); + } process } http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/1d8f3189/slider-core/src/test/java/org/apache/slider/server/services/workflow/TestWorkflowForkedProcessService.java ---------------------------------------------------------------------- diff --git a/slider-core/src/test/java/org/apache/slider/server/services/workflow/TestWorkflowForkedProcessService.java b/slider-core/src/test/java/org/apache/slider/server/services/workflow/TestWorkflowForkedProcessService.java index cf0afc1..01d5ec9 100644 --- a/slider-core/src/test/java/org/apache/slider/server/services/workflow/TestWorkflowForkedProcessService.java +++ b/slider-core/src/test/java/org/apache/slider/server/services/workflow/TestWorkflowForkedProcessService.java @@ -69,7 +69,9 @@ public class TestWorkflowForkedProcessService extends WorkflowServiceTestBase { initProcess(commandFactory.ls(testDir)); exec(); assertFalse(process.isProcessRunning()); - assertEquals(0, process.getExitCode()); + Integer exitCode = process.getExitCode(); + assertNotNull("null exit code", exitCode); + assertEquals(0, exitCode.intValue()); assertStringInOutput("test-classes", getFinalOutput()); // assert that the service did not fail @@ -83,7 +85,8 @@ public class TestWorkflowForkedProcessService extends WorkflowServiceTestBase { initProcess(commandFactory.exitFalse()); exec(); assertFalse(process.isProcessRunning()); - int exitCode = process.getExitCode(); + Integer exitCode = process.getExitCode(); + assertNotNull("null exit code", exitCode); assertTrue(exitCode != 0); int corrected = process.getExitCodeSignCorrected(); assertEquals(1, corrected); @@ -98,8 +101,9 @@ public class TestWorkflowForkedProcessService extends WorkflowServiceTestBase { String echoText = "hello, world"; initProcess(commandFactory.echo(echoText)); exec(); - - assertEquals(0, process.getExitCode()); + Integer exitCode = process.getExitCode(); + assertNotNull("null exit code", exitCode); + assertEquals(0, exitCode.intValue()); assertStringInOutput(echoText, getFinalOutput()); } @@ -112,8 +116,9 @@ public class TestWorkflowForkedProcessService extends WorkflowServiceTestBase { env.put(var, val); initProcess(commandFactory.env()); exec(); - - assertEquals(0, process.getExitCode()); + Integer exitCode = process.getExitCode(); + assertNotNull("null exit code", exitCode); + assertEquals(0, exitCode.intValue()); assertStringInOutput(val, getFinalOutput()); } @@ -137,7 +142,7 @@ public class TestWorkflowForkedProcessService extends WorkflowServiceTestBase { public void exec() throws InterruptedException, TimeoutException { assertNotNull(process); process.start(); - process.waitForServiceToStop(5000); + assert process.waitForServiceToStop(5000); } }
