Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1018)

Unified Diff: build/android/pylib/android_commands.py

Issue 32163002: Relands Android perf tests: kill adbd on the device after running a test. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Comments Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | build/android/pylib/perf/test_runner.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/android/pylib/android_commands.py
diff --git a/build/android/pylib/android_commands.py b/build/android/pylib/android_commands.py
index 20684b7b07b317b870370d8476eb237f6cbffe23..1650398800d595abad0cb9b2d79a7ff351e50c65 100644
--- a/build/android/pylib/android_commands.py
+++ b/build/android/pylib/android_commands.py
@@ -13,6 +13,7 @@ import logging
import os
import re
import shlex
+import signal
import subprocess
import sys
import tempfile
@@ -458,6 +459,13 @@ class AndroidCommands(object):
if out.strip() != 'remount succeeded':
raise errors.MsgException('Remount failed: %s' % out)
+ def RestartAdbdOnDevice(self):
+ logging.info('Killing adbd on the device...')
+ adb_pids = self.KillAll('adbd', signal=signal.SIGTERM, with_su=True)
+ assert adb_pids, 'Unable to obtain adbd pid'
+ logging.info('Waiting for device to settle...')
+ self._adb.SendCommand('wait-for-device')
+
def RestartAdbServer(self):
"""Restart the adb server."""
ret = self.KillAdbServer()
@@ -596,18 +604,24 @@ class AndroidCommands(object):
lines = lines[:-1] + [last_line[:status_pos]]
return (status, lines)
- def KillAll(self, process):
+ def KillAll(self, process, signal=9, with_su=False):
"""Android version of killall, connected via adb.
Args:
- process: name of the process to kill off
+ process: name of the process to kill off.
+ signal: signal to use, 9 (SIGKILL) by default.
+ with_su: wether or not to use su to kill the processes.
Returns:
the number of processes killed
"""
pids = self.ExtractPid(process)
if pids:
- self.RunShellCommand('kill -9 ' + ' '.join(pids))
+ cmd = 'kill -%d %s' % (signal, ' '.join(pids))
+ if with_su:
+ self.RunShellCommandWithSU(cmd)
+ else:
+ self.RunShellCommand(cmd)
return len(pids)
def KillAllBlocking(self, process, timeout_sec):
« no previous file with comments | « no previous file | build/android/pylib/perf/test_runner.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698