diff options
Diffstat (limited to 'automation/clients/helper/crosstool.py')
-rw-r--r-- | automation/clients/helper/crosstool.py | 85 |
1 files changed, 45 insertions, 40 deletions
diff --git a/automation/clients/helper/crosstool.py b/automation/clients/helper/crosstool.py index f3b24005..80154b25 100644 --- a/automation/clients/helper/crosstool.py +++ b/automation/clients/helper/crosstool.py @@ -1,5 +1,3 @@ -#!/usr/bin/python -# # Copyright 2011 Google Inc. All Rights Reserved. __author__ = 'kbaclawski@google.com (Krystian Baclawski)' @@ -14,14 +12,15 @@ from automation.common import job class JobsFactory(object): + def __init__(self): self.commands = CommandsFactory() def CheckoutCrosstool(self, target): command = self.commands.CheckoutCrosstool() new_job = jobs.CreateLinuxJob('CheckoutCrosstool(%s)' % target, command) - checkout_dir_dep = job.FolderDependency( - new_job, CommandsFactory.CHECKOUT_DIR) + checkout_dir_dep = job.FolderDependency(new_job, + CommandsFactory.CHECKOUT_DIR) manifests_dir_dep = job.FolderDependency( new_job, os.path.join(self.commands.buildit_path, target), 'manifests') return new_job, checkout_dir_dep, manifests_dir_dep @@ -30,14 +29,14 @@ class JobsFactory(object): command = self.commands.BuildRelease(target) new_job = jobs.CreateLinuxJob('BuildRelease(%s)' % target, command) new_job.DependsOnFolder(checkout_dir) - build_tree_dep = job.FolderDependency( - new_job, self.commands.buildit_work_dir_path) + build_tree_dep = job.FolderDependency(new_job, + self.commands.buildit_work_dir_path) return new_job, build_tree_dep def RunTests(self, checkout_dir, build_tree_dir, target, board, component): command = self.commands.RunTests(target, board, component) - new_job = jobs.CreateLinuxJob( - 'RunTests(%s, %s, %s)' % (target, component, board), command) + new_job = jobs.CreateLinuxJob('RunTests(%s, %s, %s)' % + (target, component, board), command) new_job.DependsOnFolder(checkout_dir) new_job.DependsOnFolder(build_tree_dir) testrun_dir_dep = job.FolderDependency( @@ -57,24 +56,26 @@ class CommandsFactory(object): CHECKOUT_DIR = 'crosstool-checkout-dir' def __init__(self): - self.buildit_path = os.path.join( - self.CHECKOUT_DIR, 'gcctools', 'crosstool', 'v15') + self.buildit_path = os.path.join(self.CHECKOUT_DIR, 'gcctools', 'crosstool', + 'v15') self.buildit_work_dir = 'buildit-tmp' self.buildit_work_dir_path = os.path.join('$JOB_TMP', self.buildit_work_dir) - self.dejagnu_output_path = os.path.join( - self.buildit_work_dir_path, 'dejagnu-output') + self.dejagnu_output_path = os.path.join(self.buildit_work_dir_path, + 'dejagnu-output') paths = { 'gcctools': [ - 'crosstool/v15/...', - 'scripts/...'], + 'crosstool/v15/...', 'scripts/...' + ], 'gcctools/google_vendor_src_branch': [ - 'binutils/binutils-2.21/...', - 'gdb/gdb-7.2.x/...', - 'zlib/zlib-1.2.3/...'], + 'binutils/binutils-2.21/...', 'gdb/gdb-7.2.x/...', + 'zlib/zlib-1.2.3/...' + ], 'gcctools/vendor_src': [ - 'gcc/google/gcc-4_6/...']} + 'gcc/google/gcc-4_6/...' + ] + } p4view = perforce.View('depot2', perforce.PathMapping.ListFromPathDict(paths)) @@ -91,22 +92,21 @@ class CommandsFactory(object): def BuildRelease(self, target): clnum_path = os.path.join('$JOB_TMP', self.CHECKOUT_DIR, 'CLNUM') - toolchain_root = os.path.join( - '/google/data/rw/projects/toolchains', target, 'unstable') + toolchain_root = os.path.join('/google/data/rw/projects/toolchains', target, + 'unstable') toolchain_path = os.path.join(toolchain_root, '${CLNUM}') build_toolchain = cmd.Wrapper( cmd.Chain( - cmd.MakeDir(toolchain_path), - cmd.Shell( - 'buildit', - '--keep-work-dir', - '--build-type=release', - '--work-dir=%s' % self.buildit_work_dir_path, - '--results-dir=%s' % toolchain_path, - '--force-release=%s' % '${CLNUM}', - target, - path='.')), + cmd.MakeDir(toolchain_path), + cmd.Shell('buildit', + '--keep-work-dir', + '--build-type=release', + '--work-dir=%s' % self.buildit_work_dir_path, + '--results-dir=%s' % toolchain_path, + '--force-release=%s' % '${CLNUM}', + target, + path='.')), cwd=self.buildit_path, umask='0022', env={'CLNUM': '$(< %s)' % clnum_path}) @@ -114,8 +114,7 @@ class CommandsFactory(object): # remove all but 10 most recent directories remove_old_toolchains_from_x20 = cmd.Wrapper( cmd.Pipe( - cmd.Shell('ls', '-1', '-r'), - cmd.Shell('sed', '-e', '1,10d'), + cmd.Shell('ls', '-1', '-r'), cmd.Shell('sed', '-e', '1,10d'), cmd.Shell('xargs', 'rm', '-r', '-f')), cwd=toolchain_root) @@ -132,13 +131,15 @@ class CommandsFactory(object): 'experimental/users/kbaclawski', 'dejagnu/site.exp') - build_dir_path = os.path.join( - target, 'rpmbuild/BUILD/crosstool*-0.0', 'build-%s' % component) + build_dir_path = os.path.join(target, 'rpmbuild/BUILD/crosstool*-0.0', + 'build-%s' % component) run_dejagnu = cmd.Wrapper( cmd.Chain( cmd.MakeDir(self.dejagnu_output_path), - cmd.Shell('make', 'check', '-k', + cmd.Shell('make', + 'check', + '-k', '-j $(grep -c processor /proc/cpuinfo)', 'RUNTESTFLAGS="%s"' % ' '.join(dejagnu_flags), 'DEJAGNU="%s"' % site_exp_file, @@ -146,8 +147,9 @@ class CommandsFactory(object): cwd=os.path.join(self.buildit_work_dir_path, build_dir_path), env={'REMOTE_TMPDIR': 'job-$JOB_ID'}) - save_results = cmd.Copy( - self.dejagnu_output_path, to_dir='$JOB_TMP/results', recursive=True) + save_results = cmd.Copy(self.dejagnu_output_path, + to_dir='$JOB_TMP/results', + recursive=True) return cmd.Chain(run_dejagnu, save_results) @@ -155,9 +157,12 @@ class CommandsFactory(object): sumfiles = [os.path.join('$JOB_TMP', board, '*.sum') for board in boards] return cmd.Wrapper( - cmd.Shell('dejagnu.sh', 'report', - '-m', '$JOB_TMP/manifests/*.xfail', - '-o', '$JOB_TMP/results/report.html', + cmd.Shell('dejagnu.sh', + 'report', + '-m', + '$JOB_TMP/manifests/*.xfail', + '-o', + '$JOB_TMP/results/report.html', *sumfiles, path='.'), cwd='$HOME/automation/clients/report') |