Index: build/android/pylib/android_commands.py |
diff --git a/build/android/pylib/android_commands.py b/build/android/pylib/android_commands.py |
index 32121432480103f0e071d4488825ebb6b2fc9011..96af3b3b824a8731ee2f000089688c691631ec09 100644 |
--- a/build/android/pylib/android_commands.py |
+++ b/build/android/pylib/android_commands.py |
@@ -758,7 +758,7 @@ class AndroidCommands(object): |
lines = lines[:-1] + [last_line[:status_pos]] |
return (status, lines) |
- def KillAll(self, process, signum=9, with_su=False): |
+ def KillAll(self, process, signum=signal.SIGKILL, with_su=False): |
"""Android version of killall, connected via adb. |
Args: |
@@ -778,7 +778,8 @@ class AndroidCommands(object): |
self.RunShellCommand(cmd) |
return len(pids) |
- def KillAllBlocking(self, process, timeout_sec): |
+ def KillAllBlocking(self, process, timeout_sec, signum=signal.SIGKILL, |
+ with_su=False): |
"""Blocking version of killall, connected via adb. |
This waits until no process matching the corresponding name appears in ps' |
@@ -787,11 +788,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 |
@@ -800,7 +802,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 |
@@ -863,11 +865,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', |
@@ -879,18 +883,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 |