aboutsummaryrefslogtreecommitdiff
path: root/automation/clients/helper/crosstool.py
diff options
context:
space:
mode:
Diffstat (limited to 'automation/clients/helper/crosstool.py')
-rw-r--r--automation/clients/helper/crosstool.py85
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')