89 lines
3.4 KiB
Python
89 lines
3.4 KiB
Python
|
#!/usr/bin/env python2
|
||
|
#
|
||
|
# Copyright 2017 The Chromium OS Authors. All rights reserved.
|
||
|
# Use of this source code is governed by a BSD-style license that can be
|
||
|
# found in the LICENSE file.
|
||
|
"""Script to patch Android repo with diffs that are needed by the suite.
|
||
|
|
||
|
Run this script before running the suite.
|
||
|
"""
|
||
|
from __future__ import print_function
|
||
|
|
||
|
import config
|
||
|
import os
|
||
|
import subprocess
|
||
|
|
||
|
# The patches to be added to the android repo.
|
||
|
# An error may occur if it is already patched, or meets some error.
|
||
|
# FIXME: Needs to be FIXED in the future.
|
||
|
def try_patch_autotest():
|
||
|
# Patch autotest, which includes all the testcases on device,
|
||
|
# setting device, and running the benchmarks
|
||
|
autotest_dir = os.path.join(config.android_home, config.autotest_dir)
|
||
|
autotest_patch = os.path.join(
|
||
|
os.path.dirname(os.path.realpath(__file__)), 'autotest.diff')
|
||
|
dex2oat_dir = os.path.join(autotest_dir,
|
||
|
'server/site_tests/android_Dex2oat')
|
||
|
panorama_dir = os.path.join(autotest_dir,
|
||
|
'server/site_tests/android_Panorama')
|
||
|
# FIXME: A quick hack, need to handle errors and check whether has been
|
||
|
# applied in the future.
|
||
|
try:
|
||
|
subprocess.check_call(['git', '-C', autotest_dir,
|
||
|
'apply', autotest_patch])
|
||
|
subprocess.check_call(['cp', '-rf', 'dex2oat_input', dex2oat_dir])
|
||
|
subprocess.check_call(['cp', '-rf', 'panorama_input', panorama_dir])
|
||
|
print('Autotest patched successfully!')
|
||
|
except subprocess.CalledProcessError:
|
||
|
print('Autotest patch not applied, error or already patched.')
|
||
|
|
||
|
|
||
|
def try_patch_panorama():
|
||
|
panorama_dir = os.path.join(config.android_home,
|
||
|
config.bench_dict['Panorama'])
|
||
|
panorama_patch = os.path.join(
|
||
|
os.path.dirname(os.path.realpath(__file__)), 'panorama.diff')
|
||
|
# FIXME: A quick hack, need to handle errors and check whether has been
|
||
|
# applied in the future.
|
||
|
try:
|
||
|
subprocess.check_call(['mkdir', '-p', panorama_dir])
|
||
|
subprocess.check_call(['git', '-C', panorama_dir,
|
||
|
'apply', panorama_patch])
|
||
|
print('Panorama patched successfully!')
|
||
|
except subprocess.CalledProcessError:
|
||
|
print('Panorama patch not applied, error or already patched.')
|
||
|
|
||
|
|
||
|
def try_patch_synthmark():
|
||
|
synthmark_dir = '/tmp/devrel/tools/synthmark'
|
||
|
# FIXME: A quick hack, need to handle errors and check whether has been
|
||
|
# applied in the future.
|
||
|
try:
|
||
|
subprocess.check_call([
|
||
|
'bash', '-c', 'cd /tmp && '
|
||
|
'rm -rf devrel && '
|
||
|
'mkdir devrel && '
|
||
|
'cd devrel && '
|
||
|
'repo init -u sso://devrel/manifest && '
|
||
|
'repo sync tools/synthmark'
|
||
|
])
|
||
|
synthmark_patch = os.path.join(
|
||
|
os.path.dirname(os.path.realpath(__file__)), 'synthmark.diff')
|
||
|
subprocess.check_call(['git', '-C', synthmark_dir,
|
||
|
'apply', synthmark_patch])
|
||
|
|
||
|
subprocess.check_call(['mv', '-f', synthmark_dir, config.android_home])
|
||
|
subprocess.check_call(['rm', '-rf', '/tmp/devrel'])
|
||
|
print('Synthmark patched successfully!')
|
||
|
except subprocess.CalledProcessError:
|
||
|
print('Synthmark patch not applied, error or already patched.')
|
||
|
|
||
|
|
||
|
def main():
|
||
|
try_patch_panorama()
|
||
|
try_patch_autotest()
|
||
|
try_patch_synthmark()
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
main()
|