Merge "Use maven directory structure"
diff --git a/chimpchat/src/com/android/chimpchat/adb/AdbChimpDevice.java b/chimpchat/src/com/android/chimpchat/adb/AdbChimpDevice.java
index 200c69e..af09efe 100644
--- a/chimpchat/src/com/android/chimpchat/adb/AdbChimpDevice.java
+++ b/chimpchat/src/com/android/chimpchat/adb/AdbChimpDevice.java
@@ -264,9 +264,16 @@
@Override
public String shell(String cmd) {
+ // 5000 is the default timeout from the ddmlib.
+ // This timeout arg is needed to the backwards compatibility.
+ return shell(cmd, 5000);
+ }
+
+ @Override
+ public String shell(String cmd, int timeout) {
CommandOutputCapture capture = new CommandOutputCapture();
try {
- device.executeShellCommand(cmd, capture);
+ device.executeShellCommand(cmd, capture, timeout);
} catch (TimeoutException e) {
LOG.log(Level.SEVERE, "Error executing command: " + cmd, e);
return null;
diff --git a/chimpchat/src/com/android/chimpchat/core/IChimpDevice.java b/chimpchat/src/com/android/chimpchat/core/IChimpDevice.java
index 14b58a7..60cfa76 100644
--- a/chimpchat/src/com/android/chimpchat/core/IChimpDevice.java
+++ b/chimpchat/src/com/android/chimpchat/core/IChimpDevice.java
@@ -131,12 +131,23 @@
/**
* Execute a shell command.
*
+ * Will timeout if there is no ouput for 5 secounds.
+ *
* @param cmd the command to execute
* @return the output of the command
*/
String shell(String cmd);
/**
+ * Execute a shell command.
+ *
+ * @param cmd the command to execute
+ * @param timeout maximum time to output response
+ * @return the output of the command
+ */
+ String shell(String cmd, int timeout);
+
+ /**
* Install a given package.
*
* @param path the path to the installation package
diff --git a/monkeyrunner/src/com/android/monkeyrunner/MonkeyDevice.java b/monkeyrunner/src/com/android/monkeyrunner/MonkeyDevice.java
index 41e58f9..5dc7e7b 100644
--- a/monkeyrunner/src/com/android/monkeyrunner/MonkeyDevice.java
+++ b/monkeyrunner/src/com/android/monkeyrunner/MonkeyDevice.java
@@ -209,15 +209,22 @@
}
@MonkeyRunnerExported(doc = "Executes an adb shell command and returns the result, if any.",
- args = { "cmd"},
- argDocs = { "The adb shell command to execute." },
+ args = { "cmd", "timeout"},
+ argDocs = { "The adb shell command to execute.",
+ "This arg is optional. It specifies the maximum amount of time during which the" +
+ "command can go without any output. A value of 0 means the method" +
+ "will wait forever. The unit of the timeout is millisecond"},
returns = "The output from the command.")
public String shell(PyObject[] args, String[] kws) {
ArgParser ap = JythonUtils.createArgParser(args, kws);
Preconditions.checkNotNull(ap);
-
String cmd = ap.getString(0);
- return impl.shell(cmd);
+
+ if (args.length == 2) {
+ return impl.shell(cmd, ap.getInt(1));
+ } else {
+ return impl.shell(cmd);
+ }
}
@MonkeyRunnerExported(doc = "Reboots the specified device into a specified bootloader.",