Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 """Provides an interface to communicate with the device via the adb command. | 5 """Provides an interface to communicate with the device via the adb command. |
| 6 | 6 |
| 7 Assumes adb binary is currently on system path. | 7 Assumes adb binary is currently on system path. |
| 8 """ | 8 """ |
| 9 # pylint: disable-all | 9 # pylint: disable-all |
| 10 | 10 |
| (...skipping 760 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 771 """ | 771 """ |
| 772 pids = self.ExtractPid(process) | 772 pids = self.ExtractPid(process) |
| 773 if pids: | 773 if pids: |
| 774 cmd = 'kill -%d %s' % (signum, ' '.join(pids)) | 774 cmd = 'kill -%d %s' % (signum, ' '.join(pids)) |
| 775 if with_su: | 775 if with_su: |
| 776 self.RunShellCommandWithSU(cmd) | 776 self.RunShellCommandWithSU(cmd) |
| 777 else: | 777 else: |
| 778 self.RunShellCommand(cmd) | 778 self.RunShellCommand(cmd) |
| 779 return len(pids) | 779 return len(pids) |
| 780 | 780 |
| 781 def KillAllBlocking(self, process, timeout_sec): | 781 def KillAllBlocking(self, process, timeout_sec, signum=9, with_su=False): |
|
Sami
2014/06/17 20:39:11
nit: use signal.SIGKILL instead of 9.
jbudorick
2014/06/17 21:09:27
Done. (and above in KillAll)
| |
| 782 """Blocking version of killall, connected via adb. | 782 """Blocking version of killall, connected via adb. |
| 783 | 783 |
| 784 This waits until no process matching the corresponding name appears in ps' | 784 This waits until no process matching the corresponding name appears in ps' |
| 785 output anymore. | 785 output anymore. |
| 786 | 786 |
| 787 Args: | 787 Args: |
| 788 process: name of the process to kill off | 788 process: name of the process to kill off |
| 789 timeout_sec: the timeout in seconds | 789 timeout_sec: the timeout in seconds |
| 790 | 790 signum: same as |KillAll| |
| 791 with_su: same as |KillAll| | |
| 791 Returns: | 792 Returns: |
| 792 the number of processes killed | 793 the number of processes killed |
| 793 """ | 794 """ |
| 794 processes_killed = self.KillAll(process) | 795 processes_killed = self.KillAll(process, signum=signum, with_su=with_su) |
| 795 if processes_killed: | 796 if processes_killed: |
| 796 elapsed = 0 | 797 elapsed = 0 |
| 797 wait_period = 0.1 | 798 wait_period = 0.1 |
| 798 # Note that this doesn't take into account the time spent in ExtractPid(). | 799 # Note that this doesn't take into account the time spent in ExtractPid(). |
| 799 while self.ExtractPid(process) and elapsed < timeout_sec: | 800 while self.ExtractPid(process) and elapsed < timeout_sec: |
| 800 time.sleep(wait_period) | 801 time.sleep(wait_period) |
| 801 elapsed += wait_period | 802 elapsed += wait_period |
| 802 if elapsed >= timeout_sec: | 803 if elapsed >= timeout_sec: |
| 803 return 0 | 804 return 0 |
| 804 return processes_killed | 805 return processes_killed |
| (...skipping 1178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1983 """ | 1984 """ |
| 1984 def __init__(self, output): | 1985 def __init__(self, output): |
| 1985 self._output = output | 1986 self._output = output |
| 1986 | 1987 |
| 1987 def write(self, data): | 1988 def write(self, data): |
| 1988 data = data.replace('\r\r\n', '\n') | 1989 data = data.replace('\r\r\n', '\n') |
| 1989 self._output.write(data) | 1990 self._output.write(data) |
| 1990 | 1991 |
| 1991 def flush(self): | 1992 def flush(self): |
| 1992 self._output.flush() | 1993 self._output.flush() |
| OLD | NEW |