Upstream version 11.40.277.0
[platform/framework/web/crosswalk.git] / src / tools / telemetry / telemetry / core / platform / profiler / android_prebuilt_profiler_helper.py
1 # Copyright 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 """Android-specific, installs pre-built profilers."""
6
7 import logging
8 import os
9
10 from telemetry import decorators
11 from telemetry.util import support_binaries
12
13 _DEVICE_PROFILER_DIR = '/data/local/tmp/profilers/'
14
15
16 def GetDevicePath(profiler_binary):
17   return os.path.join(_DEVICE_PROFILER_DIR, os.path.basename(profiler_binary))
18
19
20 @decorators.Cache
21 def InstallOnDevice(device, profiler_binary):
22   arch_name = device.GetABI()
23   host_path = support_binaries.FindPath(profiler_binary, arch_name, 'android')
24   if not host_path:
25     logging.error('Profiler binary "%s" not found. Could not be installed',
26                   host_path)
27     return False
28
29   device_binary_path = GetDevicePath(profiler_binary)
30   device.PushChangedFiles([(host_path, device_binary_path)])
31   device.RunShellCommand('chmod 777 ' + device_binary_path)
32   return True