summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2014-09-05 19:00:22 -0600
committerSimon Glass <sjg@chromium.org>2014-09-09 16:38:31 -0600
commitf7582ce8496f19edf845d1f62c4b7f385e4cd864 (patch)
tree88bb6db6e2ea075958c80422493c1794fc77951d
parent930c8d4ad8d179bce2426f9fca8edac904bafddc (diff)
downloadu-boot-f7582ce8496f19edf845d1f62c4b7f385e4cd864.tar.gz
u-boot-f7582ce8496f19edf845d1f62c4b7f385e4cd864.tar.bz2
u-boot-f7582ce8496f19edf845d1f62c4b7f385e4cd864.zip
buildman: Permit branch names with an embedded '/'
At present buildman naively uses the branch name as part of its directory path, which causes problems if the name has an embedded '/'. Replace these with '_' to fix the problem. Reported-by: Steve Rae <srae@broadcom.com> Signed-off-by: Simon Glass <sjg@chromium.org>
-rw-r--r--tools/buildman/control.py2
-rw-r--r--tools/buildman/func_test.py17
2 files changed, 14 insertions, 5 deletions
diff --git a/tools/buildman/control.py b/tools/buildman/control.py
index ee9637591c..8146e1caf8 100644
--- a/tools/buildman/control.py
+++ b/tools/buildman/control.py
@@ -209,7 +209,7 @@ def DoBuildman(options, args, toolchains=None, make_func=None, boards=None,
# Create a new builder with the selected options
if options.branch:
- dirname = options.branch
+ dirname = options.branch.replace('/', '_')
else:
dirname = 'current'
output_dir = os.path.join(options.output_dir, dirname)
diff --git a/tools/buildman/func_test.py b/tools/buildman/func_test.py
index 2cb5cf05fc..c37f1b6208 100644
--- a/tools/buildman/func_test.py
+++ b/tools/buildman/func_test.py
@@ -199,6 +199,8 @@ class TestFunctional(unittest.TestCase):
# Map of [board, commit] to error messages
self._error = {}
+ self._test_branch = TEST_BRANCH
+
# Avoid sending any output and clear all terminal output
terminal.SetPrintTestMode()
terminal.GetPrintTestLines()
@@ -252,10 +254,10 @@ class TestFunctional(unittest.TestCase):
def _HandleCommandGitLog(self, args):
if '-n0' in args:
return command.CommandResult(return_code=0)
- elif args[-1] == 'upstream/master..%s' % TEST_BRANCH:
+ elif args[-1] == 'upstream/master..%s' % self._test_branch:
return command.CommandResult(return_code=0, stdout=commit_shortlog)
elif args[:3] == ['--no-color', '--no-decorate', '--reverse']:
- if args[-1] == TEST_BRANCH:
+ if args[-1] == self._test_branch:
count = int(args[3][2:])
return command.CommandResult(return_code=0,
stdout=''.join(commit_log[:count]))
@@ -270,9 +272,9 @@ class TestFunctional(unittest.TestCase):
return command.CommandResult(return_code=0)
elif config.startswith('branch.badbranch'):
return command.CommandResult(return_code=1)
- elif config == 'branch.%s.remote' % TEST_BRANCH:
+ elif config == 'branch.%s.remote' % self._test_branch:
return command.CommandResult(return_code=0, stdout='upstream\n')
- elif config == 'branch.%s.merge' % TEST_BRANCH:
+ elif config == 'branch.%s.merge' % self._test_branch:
return command.CommandResult(return_code=0,
stdout='refs/heads/master\n')
@@ -505,3 +507,10 @@ class TestFunctional(unittest.TestCase):
self.assertEqual(self._builder.count, self._total_builds)
self.assertEqual(self._builder.fail, 0)
self.assertEqual(self._make_calls, 3)
+
+ def testBranchWithSlash(self):
+ """Test building a branch with a '/' in the name"""
+ self._test_branch = '/__dev/__testbranch'
+ self._RunControl('-b', self._test_branch, clean_dir=False)
+ self.assertEqual(self._builder.count, self._total_builds)
+ self.assertEqual(self._builder.fail, 0)