| Index: tools/telemetry/telemetry/core/platform/profiler/tcpdump_profiler.py
|
| diff --git a/tools/telemetry/telemetry/core/platform/profiler/tcpdump_profiler.py b/tools/telemetry/telemetry/core/platform/profiler/tcpdump_profiler.py
|
| index 16962c82f53988658494b46d7ea3d42b5d3a9d85..6b62474aa09e3d111032614932f64a79a261cd5f 100644
|
| --- a/tools/telemetry/telemetry/core/platform/profiler/tcpdump_profiler.py
|
| +++ b/tools/telemetry/telemetry/core/platform/profiler/tcpdump_profiler.py
|
| @@ -9,13 +9,8 @@
|
| import sys
|
| import tempfile
|
|
|
| -from telemetry.core import util
|
| from telemetry.core.platform import profiler
|
| from telemetry.core.platform.profiler import android_prebuilt_profiler_helper
|
| -
|
| -util.AddDirToPythonPath(util.GetChromiumSrcDir(), 'build', 'android')
|
| -from pylib import device_signal # pylint: disable=import-error
|
| -from pylib.device import device_errors # pylint: disable=import-error
|
|
|
| _TCP_DUMP_BASE_OPTS = ['-i', 'any', '-p', '-s', '0', '-w']
|
|
|
| @@ -29,30 +24,32 @@
|
|
|
| _DEVICE_DUMP_FILE = '/sdcard/tcpdump_profiles/capture.pcap'
|
|
|
| - def __init__(self, device, output_path):
|
| - self._device = device
|
| + def __init__(self, adb, output_path):
|
| + self._adb = adb
|
| self._output_path = output_path
|
| - self._device.RunShellCommand('mkdir -p ' +
|
| - os.path.dirname(self._DEVICE_DUMP_FILE))
|
| + self._adb.RunShellCommand('mkdir -p ' +
|
| + os.path.dirname(self._DEVICE_DUMP_FILE))
|
| self._proc = subprocess.Popen(
|
| - ['adb', '-s', self._device.adb.GetDeviceSerial(),
|
| + ['adb', '-s', self._adb.device_serial(),
|
| 'shell', android_prebuilt_profiler_helper.GetDevicePath('tcpdump')] +
|
| _TCP_DUMP_BASE_OPTS +
|
| [self._DEVICE_DUMP_FILE])
|
|
|
| def CollectProfile(self):
|
| - try:
|
| - self._device.KillAll('tcpdump', signum=device_signal.SIGTERM)
|
| - except device_errors.CommandFailedError:
|
| - logging.exception('Unable to kill TCPDump.')
|
| + tcpdump_pid = self._adb.ExtractPid('tcpdump')
|
| + if not tcpdump_pid or not tcpdump_pid[0]:
|
| raise Exception('Unable to find TCPDump. Check your device is rooted '
|
| 'and tcpdump is installed at ' +
|
| android_prebuilt_profiler_helper.GetDevicePath('tcpdump'))
|
| -
|
| + self._adb.RunShellCommand('kill -term ' + tcpdump_pid[0])
|
| self._proc.terminate()
|
| host_dump = os.path.join(self._output_path,
|
| os.path.basename(self._DEVICE_DUMP_FILE))
|
| - self._device.PullFile(self._DEVICE_DUMP_FILE, host_dump)
|
| + try:
|
| + self._adb.device().PullFile(self._DEVICE_DUMP_FILE, host_dump)
|
| + except:
|
| + logging.exception('New exception caused by DeviceUtils conversion')
|
| + raise
|
| print 'TCP dump available at: %s ' % host_dump
|
| print 'Use Wireshark to open it.'
|
| return host_dump
|
| @@ -106,9 +103,9 @@
|
| browser_backend, platform_backend, output_path, state)
|
| if platform_backend.GetOSName() == 'android':
|
| android_prebuilt_profiler_helper.InstallOnDevice(
|
| - browser_backend.device, 'tcpdump')
|
| + browser_backend.adb.device(), 'tcpdump')
|
| self._platform_profiler = _TCPDumpProfilerAndroid(
|
| - browser_backend.device, output_path)
|
| + browser_backend.adb, output_path)
|
| else:
|
| self._platform_profiler = _TCPDumpProfilerLinux(output_path)
|
|
|
|
|