| Index: buildbot/buildbot_run.py
|
| diff --git a/buildbot/buildbot_run.py b/buildbot/buildbot_run.py
|
| index cc3a25aedbd1de6384ede0e490ca9f3b7979ecb7..b20a424de53ee49fc087666a23729b76c8391a75 100755
|
| --- a/buildbot/buildbot_run.py
|
| +++ b/buildbot/buildbot_run.py
|
| @@ -73,6 +73,9 @@ def PrepareCmake():
|
| CallSubProcess( ['make', 'cmake'], cwd=CMAKE_DIR)
|
|
|
|
|
| +_ANDROID_SETUP = 'source build/envsetup.sh && lunch full-eng'
|
| +
|
| +
|
| def PrepareAndroidTree():
|
| """Prepare an Android tree to run 'android' format tests."""
|
| if os.environ['BUILDBOT_CLOBBER'] == '1':
|
| @@ -103,8 +106,29 @@ def PrepareAndroidTree():
|
| print '@@@BUILD_STEP Build Android@@@'
|
| CallSubProcess(
|
| ['/bin/bash',
|
| - '-c', 'source build/envsetup.sh && lunch full-eng && make -j4'],
|
| + '-c', '%s && make -j4' % _ANDROID_SETUP],
|
| + cwd=ANDROID_DIR)
|
| +
|
| +
|
| +def StartAndroidEmulator():
|
| + """Start an android emulator from the built android tree."""
|
| + print '@@@BUILD_STEP Start Android emulator@@@'
|
| + android_host_bin = '$ANDROID_HOST_OUT/bin'
|
| + subprocess.Popen(
|
| + ['/bin/bash', '-c',
|
| + '%s && %s/emulator -no-window' % (_ANDROID_SETUP, android_host_bin)],
|
| cwd=ANDROID_DIR)
|
| + CallSubProcess(
|
| + ['/bin/bash', '-c',
|
| + '%s && %s/adb wait-for-device' % (_ANDROID_SETUP, android_host_bin)],
|
| + cwd=ANDROID_DIR)
|
| +
|
| +
|
| +def StopAndroidEmulator():
|
| + """Stop all android emulators."""
|
| + print '@@@BUILD_STEP Stop Android emulator@@@'
|
| + # If this fails, it's because there is no emulator running.
|
| + subprocess.call(['pkill', 'emulator.*'])
|
|
|
|
|
| def GypTestFormat(title, format=None, msvs_version=None, tests=[]):
|
| @@ -137,8 +161,7 @@ def GypTestFormat(title, format=None, msvs_version=None, tests=[]):
|
| # using the 'android' backend, so this is done in a single shell.
|
| retcode = subprocess.call(
|
| ['/bin/bash',
|
| - '-c', 'source build/envsetup.sh && lunch full-eng && cd %s && %s'
|
| - % (ROOT_DIR, command)],
|
| + '-c', '%s && cd %s && %s' % (_ANDROID_SETUP, ROOT_DIR, command)],
|
| cwd=ANDROID_DIR, env=env)
|
| else:
|
| retcode = subprocess.call(command, cwd=ROOT_DIR, env=env, shell=True)
|
| @@ -160,7 +183,11 @@ def GypBuild():
|
| # The Android gyp bot runs on linux so this must be tested first.
|
| if os.environ['BUILDBOT_BUILDERNAME'] == 'gyp-android':
|
| PrepareAndroidTree()
|
| - retcode += GypTestFormat('android')
|
| + StartAndroidEmulator()
|
| + try:
|
| + retcode += GypTestFormat('android')
|
| + finally:
|
| + StopAndroidEmulator()
|
| elif sys.platform.startswith('linux'):
|
| retcode += GypTestFormat('ninja')
|
| retcode += GypTestFormat('make')
|
|
|