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

Side by Side Diff: build/android/pylib/constants/__init__.py

Issue 1416703003: [Android] Add a configurable environment for devil/. (RELAND 2) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fixed Created 5 years, 1 month 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 unified diff | Download patch
OLDNEW
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 """Defines a set of constants shared by test runners and other scripts.""" 5 """Defines a set of constants shared by test runners and other scripts."""
6 6
7 # TODO(jbudorick): Split these constants into coherent modules. 7 # TODO(jbudorick): Split these constants into coherent modules.
8 8
9 # pylint: disable=W0212 9 # pylint: disable=W0212
10 10
11 import collections 11 import collections
12 import logging 12 import logging
13 import os 13 import os
14 import subprocess 14 import subprocess
15 15
16 import devil.android.sdk.keyevent 16 import devil.android.sdk.keyevent
17 from devil.android.sdk import version_codes 17 from devil.android.sdk import version_codes
18 18
19
19 keyevent = devil.android.sdk.keyevent 20 keyevent = devil.android.sdk.keyevent
20 21
21 22
22 DIR_SOURCE_ROOT = os.environ.get('CHECKOUT_SOURCE_ROOT', 23 DIR_SOURCE_ROOT = os.environ.get('CHECKOUT_SOURCE_ROOT',
23 os.path.abspath(os.path.join(os.path.dirname(__file__), 24 os.path.abspath(os.path.join(os.path.dirname(__file__),
24 os.pardir, os.pardir, os.pardir, os.pardir))) 25 os.pardir, os.pardir, os.pardir, os.pardir)))
25 26
26 PackageInfo = collections.namedtuple('PackageInfo', 27 PackageInfo = collections.namedtuple('PackageInfo',
27 ['package', 'activity', 'cmdline_file', 'devtools_socket', 28 ['package', 'activity', 'cmdline_file', 'devtools_socket',
28 'test_package']) 29 'test_package'])
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 """ 235 """
235 if 'CHROMIUM_OUTPUT_DIR' in os.environ: 236 if 'CHROMIUM_OUTPUT_DIR' in os.environ:
236 return os.path.abspath(os.path.join( 237 return os.path.abspath(os.path.join(
237 DIR_SOURCE_ROOT, os.environ.get('CHROMIUM_OUTPUT_DIR'))) 238 DIR_SOURCE_ROOT, os.environ.get('CHROMIUM_OUTPUT_DIR')))
238 239
239 return os.path.abspath(os.path.join( 240 return os.path.abspath(os.path.join(
240 DIR_SOURCE_ROOT, os.environ.get('CHROMIUM_OUT_DIR', 'out'), 241 DIR_SOURCE_ROOT, os.environ.get('CHROMIUM_OUT_DIR', 'out'),
241 GetBuildType() if build_type is None else build_type)) 242 GetBuildType() if build_type is None else build_type))
242 243
243 244
244 def _Memoize(func): 245 # TODO(jbudorick): Convert existing callers to AdbWrapper.GetAdbPath() and
245 def Wrapper(): 246 # remove this.
246 try: 247 def GetAdbPath():
247 return func._result 248 from devil.android.sdk import adb_wrapper
248 except AttributeError: 249 return adb_wrapper.AdbWrapper.GetAdbPath()
249 func._result = func()
250 return func._result
251 return Wrapper
252 250
253 251
254 def SetAdbPath(adb_path):
255 os.environ['ADB_PATH'] = adb_path
256
257
258 def GetAdbPath():
259 # Check if a custom adb path as been set. If not, try to find adb
260 # on the system.
261 if os.environ.get('ADB_PATH'):
262 return os.environ.get('ADB_PATH')
263 else:
264 return _FindAdbPath()
265
266
267 @_Memoize
268 def _FindAdbPath():
269 if os.environ.get('ANDROID_SDK_ROOT'):
270 return 'adb'
271 # If envsetup.sh hasn't been sourced and there's no adb in the path,
272 # set it here.
273 try:
274 with file(os.devnull, 'w') as devnull:
275 subprocess.call(['adb', 'version'], stdout=devnull, stderr=devnull)
276 return 'adb'
277 except OSError:
278 logging.debug('No adb found in $PATH, fallback to checked in binary.')
279 return os.path.join(ANDROID_SDK_ROOT, 'platform-tools', 'adb')
280
281 # Exit codes 252 # Exit codes
282 ERROR_EXIT_CODE = 1 253 ERROR_EXIT_CODE = 1
283 INFRA_EXIT_CODE = 87 254 INFRA_EXIT_CODE = 87
284 WARNING_EXIT_CODE = 88 255 WARNING_EXIT_CODE = 88
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698