You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by cd...@apache.org on 2014/11/28 15:27:47 UTC

git commit: [flex-falcon] [refs/heads/develop] - Changed the test to have a timeout when starting the flashplayer.

Repository: flex-falcon
Updated Branches:
  refs/heads/develop ebf72609d -> f363d911d


Changed the test to have a timeout when starting the flashplayer.


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

Branch: refs/heads/develop
Commit: f363d911d500dc4ef49158aea447216f94b16435
Parents: ebf7260
Author: Christofer Dutz <ch...@codecentric.de>
Authored: Fri Nov 28 15:27:41 2014 +0100
Committer: Christofer Dutz <ch...@codecentric.de>
Committed: Fri Nov 28 15:27:41 2014 +0100

----------------------------------------------------------------------
 .../mxml/tags/MXMLFeatureTestsBase.java         | 35 ++++++++++++++++++--
 1 file changed, 32 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/f363d911/compiler.tests/feature-tests/mxml/tags/MXMLFeatureTestsBase.java
----------------------------------------------------------------------
diff --git a/compiler.tests/feature-tests/mxml/tags/MXMLFeatureTestsBase.java b/compiler.tests/feature-tests/mxml/tags/MXMLFeatureTestsBase.java
index 58b732a..f72da2e 100644
--- a/compiler.tests/feature-tests/mxml/tags/MXMLFeatureTestsBase.java
+++ b/compiler.tests/feature-tests/mxml/tags/MXMLFeatureTestsBase.java
@@ -31,6 +31,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
+import java.util.concurrent.*;
 
 import org.apache.flex.compiler.clients.MXMLC;
 import org.apache.flex.compiler.problems.ICompilerProblem;
@@ -143,9 +144,7 @@ public class MXMLFeatureTestsBase
 		try
 		{
 			System.out.println("Executing test:\n" + Arrays.toString(runArgs));
-			Process process = Runtime.getRuntime().exec(runArgs);
-			process.waitFor();
-			exitCode = process.exitValue();
+			exitCode = executeCommandWithTimeout(runArgs, 2);
 		}
 		catch (Exception e)
 		{
@@ -160,4 +159,34 @@ public class MXMLFeatureTestsBase
 	{
 		compileAndRun(mxml, false, false, false, null);
 	}
+
+	public static int executeCommandWithTimeout(String[] args, long timeoutInSeconds) throws Exception {
+		ExecutorService service = Executors.newSingleThreadExecutor();
+		Process process = Runtime.getRuntime().exec(args);
+		try {
+			Callable<Integer> call = new CallableProcess(process);
+			Future<Integer> future = service.submit(call);
+			return future.get(timeoutInSeconds, TimeUnit.SECONDS);
+		} catch (ExecutionException e) {
+			throw new Exception("Process failed to execute", e);
+		} catch (TimeoutException e) {
+			process.destroy();
+			throw new Exception("Process timed out", e);
+		} finally {
+			service.shutdown();
+		}
+	}
+
+	private static class CallableProcess implements Callable {
+		private Process p;
+
+		public CallableProcess(Process process) {
+			p = process;
+		}
+
+		public Integer call() throws Exception {
+			return p.waitFor();
+		}
+	}
+
 }