aboutsummaryrefslogtreecommitdiff
path: root/src/com/android/tradefed/targetprep
diff options
context:
space:
mode:
authorGopinath Elanchezhian <gelanchezhian@google.com>2016-04-13 19:26:57 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2016-04-13 19:26:57 +0000
commit518bc78bdb392f3a4713712acef64aa11e035978 (patch)
treec59a7f6b46fdf143c47a6a68a484d92a749e388a /src/com/android/tradefed/targetprep
parent7e7837877bc1a57a8228bfc7bcd93c1229707947 (diff)
parentee709179e6c4660983a8f5b5443d1468dbcf449f (diff)
downloadtradefederation-518bc78bdb392f3a4713712acef64aa11e035978.tar.gz
Merge "Add the timeout option for RunCommandTargetPreparer"
Diffstat (limited to 'src/com/android/tradefed/targetprep')
-rw-r--r--src/com/android/tradefed/targetprep/RunCommandTargetPreparer.java20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/com/android/tradefed/targetprep/RunCommandTargetPreparer.java b/src/com/android/tradefed/targetprep/RunCommandTargetPreparer.java
index 5b1131d70..1caf5d3bf 100644
--- a/src/com/android/tradefed/targetprep/RunCommandTargetPreparer.java
+++ b/src/com/android/tradefed/targetprep/RunCommandTargetPreparer.java
@@ -19,13 +19,14 @@ package com.android.tradefed.targetprep;
import com.android.tradefed.build.IBuildInfo;
import com.android.tradefed.config.Option;
import com.android.tradefed.config.OptionClass;
+import com.android.tradefed.device.CollectingOutputReceiver;
import com.android.tradefed.device.DeviceNotAvailableException;
import com.android.tradefed.device.ITestDevice;
import com.android.tradefed.log.LogUtil.CLog;
import com.android.tradefed.util.RunUtil;
-
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.TimeUnit;
@OptionClass(alias = "run-command")
public class RunCommandTargetPreparer implements ITargetCleaner {
@@ -42,18 +43,31 @@ public class RunCommandTargetPreparer implements ITargetCleaner {
description = "Time to delay after running commands, in msecs")
private long mDelayMsecs = 0;
+ @Option(name = "run-command-timeout",
+ description = "Timeout for execute shell command",
+ isTimeVal = true)
+ private long mRunCmdTimeout = 0;
+
+
/**
* {@inheritDoc}
*/
@Override
public void setUp(ITestDevice device, IBuildInfo buildInfo) throws TargetSetupError,
DeviceNotAvailableException {
- if (mDisable) return;
+ if (mDisable)
+ return;
for (String cmd : mCommands) {
// If the command had any output, the executeShellCommand method will log it at the
// VERBOSE level; so no need to do any logging from here.
CLog.d("About to run setup command on device %s: %s", device.getSerialNumber(), cmd);
- device.executeShellCommand(cmd);
+ if (mRunCmdTimeout > 0) {
+ CollectingOutputReceiver receiver = new CollectingOutputReceiver();
+ device.executeShellCommand(cmd, receiver, mRunCmdTimeout, TimeUnit.MILLISECONDS, 0);
+ CLog.v("%s returned %s", cmd, receiver.getOutput());
+ } else {
+ device.executeShellCommand(cmd);
+ }
}
CLog.d("Sleeping %d msecs on device %s", mDelayMsecs, device.getSerialNumber());