diff mbox

[U-Boot,13/15] buildman: Provide an internal option to clean the outpur dir

Message ID 1408982481-19722-14-git-send-email-sjg@chromium.org
State Superseded
Delegated to: Simon Glass
Headers show

Commit Message

Simon Glass Aug. 25, 2014, 4:01 p.m. UTC
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>
---

 tools/buildman/control.py | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)
diff mbox

Patch

diff --git a/tools/buildman/control.py b/tools/buildman/control.py
index 3f3cce8..c473ab9 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:
@@ -211,6 +215,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:
+        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)
@@ -232,6 +238,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