summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2014-09-05 19:00:18 -0600
committerSimon Glass <sjg@chromium.org>2014-09-09 16:38:29 -0600
commit883a321a4bee2d2b2f16e445060c17494e76bc48 (patch)
treed1b7d726d930b5bf2a8963fec16b843251fe981c /tools
parentfb3954f9ea444100be70f175bbedb685e397c540 (diff)
buildman: Provide an internal option to clean the outpur dir
For testing it is useful to clean the output directory before running a test. This avoids a test interfering with the results of a subsequent test by leaving data around. Add this feature as an optional parameter to the control logic. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'tools')
-rw-r--r--tools/buildman/control.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/tools/buildman/control.py b/tools/buildman/control.py
index fb15ae89c8c..ee9637591cd 100644
--- a/tools/buildman/control.py
+++ b/tools/buildman/control.py
@@ -5,6 +5,7 @@
import multiprocessing
import os
+import shutil
import sys
import board
@@ -78,7 +79,8 @@ def ShowActions(series, why_selected, boards_selected, builder, options):
print ('Total boards to build for each commit: %d\n' %
why_selected['all'])
-def DoBuildman(options, args, toolchains=None, make_func=None, boards=None):
+def DoBuildman(options, args, toolchains=None, make_func=None, boards=None,
+ clean_dir=False):
"""The main control code for buildman
Args:
@@ -93,6 +95,8 @@ def DoBuildman(options, args, toolchains=None, make_func=None, boards=None):
board: Boards() object to use, containing a list of available
boards. If this is None it will be created and scanned.
"""
+ global builder
+
if options.full_help:
pager = os.getenv('PAGER')
if not pager:
@@ -209,6 +213,8 @@ def DoBuildman(options, args, toolchains=None, make_func=None, boards=None):
else:
dirname = 'current'
output_dir = os.path.join(options.output_dir, dirname)
+ if clean_dir and os.path.exists(output_dir):
+ shutil.rmtree(output_dir)
builder = Builder(toolchains, output_dir, options.git_dir,
options.threads, options.jobs, gnu_make=gnu_make, checkout=True,
show_unknown=options.show_unknown, step=options.step)
@@ -230,6 +236,9 @@ def DoBuildman(options, args, toolchains=None, make_func=None, boards=None):
if series:
commits = series.commits
+ # Number the commits for test purposes
+ for commit in range(len(commits)):
+ commits[commit].sequence = commit
else:
commits = None