summaryrefslogtreecommitdiffstats
path: root/build/android/pylib/android_commands.py
diff options
context:
space:
mode:
Diffstat (limited to 'build/android/pylib/android_commands.py')
-rw-r--r--build/android/pylib/android_commands.py21
1 files changed, 13 insertions, 8 deletions
diff --git a/build/android/pylib/android_commands.py b/build/android/pylib/android_commands.py
index 253dc2b..af3ec10 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