diff options
Diffstat (limited to 'deprecated/automation/clients/helper/chromeos.py')
-rw-r--r-- | deprecated/automation/clients/helper/chromeos.py | 180 |
1 files changed, 0 insertions, 180 deletions
diff --git a/deprecated/automation/clients/helper/chromeos.py b/deprecated/automation/clients/helper/chromeos.py deleted file mode 100644 index e7157451..00000000 --- a/deprecated/automation/clients/helper/chromeos.py +++ /dev/null @@ -1,180 +0,0 @@ -# Copyright 2011 Google Inc. All Rights Reserved. - -__author__ = 'asharif@google.com (Ahmad Sharif)' - -import os.path -import re - -from automation.clients.helper import jobs -from automation.clients.helper import perforce -from automation.common import command as cmd -from automation.common import machine - - -class ScriptsFactory(object): - - def __init__(self, chromeos_root, scripts_path): - self._chromeos_root = chromeos_root - self._scripts_path = scripts_path - - def SummarizeResults(self, logs_path): - return cmd.Shell('summarize_results.py', logs_path, path=self._scripts_path) - - def Buildbot(self, config_name): - buildbot = os.path.join(self._chromeos_root, - 'chromite/cbuildbot/cbuildbot.py') - - return cmd.Shell(buildbot, '--buildroot=%s' % self._chromeos_root, - '--resume', '--noarchive', '--noprebuilts', '--nosync', - '--nouprev', '--notests', '--noclean', config_name) - - def RunBenchmarks(self, board, tests): - image_path = os.path.join(self._chromeos_root, 'src/build/images', board, - 'latest/chromiumos_image.bin') - - return cmd.Shell('cros_run_benchmarks.py', - '--remote=$SECONDARY_MACHINES[0]', - '--board=%s' % board, - '--tests=%s' % tests, - '--full_table', - image_path, - path='/home/mobiletc-prebuild') - - def SetupChromeOS(self, version='latest', use_minilayout=False): - setup_chromeos = cmd.Shell('setup_chromeos.py', - '--public', - '--dir=%s' % self._chromeos_root, - '--version=%s' % version, - path=self._scripts_path) - - if use_minilayout: - setup_chromeos.AddOption('--minilayout') - return setup_chromeos - - -class CommandsFactory(object): - DEPOT2_DIR = '//depot2/' - P4_CHECKOUT_DIR = 'perforce2/' - P4_VERSION_DIR = os.path.join(P4_CHECKOUT_DIR, 'gcctools/chromeos/v14') - - CHROMEOS_ROOT = 'chromeos' - CHROMEOS_SCRIPTS_DIR = os.path.join(CHROMEOS_ROOT, 'src/scripts') - CHROMEOS_BUILDS_DIR = '/home/mobiletc-prebuild/www/chromeos_builds' - - def __init__(self, chromeos_version, board, toolchain, p4_snapshot): - self.chromeos_version = chromeos_version - self.board = board - self.toolchain = toolchain - self.p4_snapshot = p4_snapshot - - self.scripts = ScriptsFactory(self.CHROMEOS_ROOT, self.P4_VERSION_DIR) - - def AddBuildbotConfig(self, config_name, config_list): - config_header = 'add_config(%r, [%s])' % (config_name, - ', '.join(config_list)) - config_file = os.path.join(self.CHROMEOS_ROOT, - 'chromite/cbuildbot/cbuildbot_config.py') - quoted_config_header = '%r' % config_header - quoted_config_header = re.sub("'", "\\\"", quoted_config_header) - - return cmd.Pipe( - cmd.Shell('echo', quoted_config_header), - cmd.Shell('tee', '--append', config_file)) - - def RunBuildbot(self): - config_dict = {'board': self.board, - 'build_tests': True, - 'chrome_tests': True, - 'unittests': False, - 'vm_tests': False, - 'prebuilts': False, - 'latest_toolchain': True, - 'useflags': ['chrome_internal'], - 'usepkg_chroot': True, - self.toolchain: True} - config_name = '%s-toolchain-test' % self.board - if 'arm' in self.board: - config_list = ['arm'] - else: - config_list = [] - config_list.extend(['internal', 'full', 'official', str(config_dict)]) - - add_config_shell = self.AddBuildbotConfig(config_name, config_list) - return cmd.Chain(add_config_shell, self.scripts.Buildbot(config_name)) - - def BuildAndBenchmark(self): - return cmd.Chain( - self.CheckoutV14Dir(), - self.SetupChromeOSCheckout(self.chromeos_version, True), - self.RunBuildbot(), - self.scripts.RunBenchmarks(self.board, 'BootPerfServer,10:Page,3')) - - def GetP4Snapshot(self, p4view): - p4client = perforce.CommandsFactory(self.P4_CHECKOUT_DIR, p4view) - - if self.p4_snapshot: - return p4client.CheckoutFromSnapshot(self.p4_snapshot) - else: - return p4client.SetupAndDo(p4client.Sync(), p4client.Remove()) - - def CheckoutV14Dir(self): - p4view = perforce.View(self.DEPOT2_DIR, [ - perforce.PathMapping('gcctools/chromeos/v14/...') - ]) - return self.GetP4Snapshot(p4view) - - def SetupChromeOSCheckout(self, version, use_minilayout=False): - version_re = '^\d+\.\d+\.\d+\.[a-zA-Z0-9]+$' - - location = os.path.join(self.CHROMEOS_BUILDS_DIR, version) - - if version in ['weekly', 'quarterly']: - assert os.path.islink(location), 'Symlink %s does not exist.' % location - - location_expanded = os.path.abspath(os.path.realpath(location)) - version = os.path.basename(location_expanded) - - if version in ['top', 'latest'] or re.match(version_re, version): - return self.scripts.SetupChromeOS(version, use_minilayout) - - elif version.endswith('bz2') or version.endswith('gz'): - return cmd.UnTar(location_expanded, self.CHROMEOS_ROOT) - - else: - signature_file_location = os.path.join(location, - 'src/scripts/enter_chroot.sh') - assert os.path.exists(signature_file_location), ( - 'Signature file %s does not exist.' % signature_file_location) - - return cmd.Copy(location, to_dir=self.CHROMEOS_ROOT, recursive=True) - - -class JobsFactory(object): - - def __init__(self, - chromeos_version='top', - board='x86-mario', - toolchain='trunk', - p4_snapshot=''): - self.chromeos_version = chromeos_version - self.board = board - self.toolchain = toolchain - - self.commands = CommandsFactory(chromeos_version, board, toolchain, - p4_snapshot) - - def BuildAndBenchmark(self): - command = self.commands.BuildAndBenchmark() - - label = 'BuildAndBenchmark(%s,%s,%s)' % (self.toolchain, self.board, - self.chromeos_version) - - machine_label = 'chromeos-%s' % self.board - - job = jobs.CreateLinuxJob(label, command) - job.DependsOnMachine( - machine.MachineSpecification(label=machine_label, - lock_required=True), - False) - - return job |