Index: build/android/pylib/android_commands.py |
diff --git a/build/android/pylib/android_commands.py b/build/android/pylib/android_commands.py |
index 253dc2ba9cfcdef5d743deaf5e0bbe580a05fc0d..af3ec10ee0382adb72df9149e0b4259e2daed826 100644 |
--- a/build/android/pylib/android_commands.py |
+++ b/build/android/pylib/android_commands.py |
@@ -757,7 +757,7 @@ class AndroidCommands(object): |
self.RunShellCommand(cmd) |
return len(pids) |
- def KillAllBlocking(self, process, timeout_sec): |
+ def KillAllBlocking(self, process, timeout_sec, signum=9, with_su=False): |
"""Blocking version of killall, connected via adb. |
This waits until no process matching the corresponding name appears in ps' |
@@ -766,11 +766,12 @@ class AndroidCommands(object): |
Args: |
process: name of the process to kill off |
timeout_sec: the timeout in seconds |
- |
+ signum: same as |KillAll| |
+ with_su: same as |KillAll| |
Returns: |
the number of processes killed |
""" |
- processes_killed = self.KillAll(process) |
+ processes_killed = self.KillAll(process, signum=signum, with_su=with_su) |
if processes_killed: |
elapsed = 0 |
wait_period = 0.1 |
@@ -779,7 +780,7 @@ class AndroidCommands(object): |
time.sleep(wait_period) |
elapsed += wait_period |
if elapsed >= timeout_sec: |
- return 0 |
+ return processes_killed - self.ExtractPid(process) |
return processes_killed |
@staticmethod |
@@ -842,11 +843,13 @@ class AndroidCommands(object): |
trace_file_name: If used, turns on and saves the trace to this file name. |
force_stop: force stop the target app before starting the activity (-S |
flag). |
+ Returns: |
+ The output of the underlying command as a list of lines. |
""" |
cmd = self._GetActivityCommand(package, activity, wait_for_completion, |
action, category, data, extras, |
trace_file_name, force_stop, flags) |
- self.RunShellCommand(cmd) |
+ return self.RunShellCommand(cmd) |
def StartActivityTimed(self, package, activity, wait_for_completion=False, |
action='android.intent.action.VIEW', |
@@ -858,18 +861,20 @@ class AndroidCommands(object): |
Args - as for StartActivity |
Returns: |
- a timestamp string for the time at which the activity started |
+ A tuple containing: |
+ - the output of the underlying command as a list of lines, and |
+ - a timestamp string for the time at which the activity started |
""" |
cmd = self._GetActivityCommand(package, activity, wait_for_completion, |
action, category, data, extras, |
trace_file_name, force_stop, flags) |
self.StartMonitoringLogcat() |
- self.RunShellCommand('log starting activity; ' + cmd) |
+ out = self.RunShellCommand('log starting activity; ' + cmd) |
activity_started_re = re.compile('.*starting activity.*') |
m = self.WaitForLogMatch(activity_started_re, None) |
assert m |
start_line = m.group(0) |
- return GetLogTimestamp(start_line, self.GetDeviceYear()) |
+ return (out, GetLogTimestamp(start_line, self.GetDeviceYear())) |
def StartCrashUploadService(self, package): |
# TODO(frankf): We really need a python wrapper around Intent |