diff options
author | Simon Glass <sjg@chromium.org> | 2014-09-05 19:00:22 -0600 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2014-09-09 16:38:31 -0600 |
commit | f7582ce8496f19edf845d1f62c4b7f385e4cd864 (patch) | |
tree | 88bb6db6e2ea075958c80422493c1794fc77951d | |
parent | 930c8d4ad8d179bce2426f9fca8edac904bafddc (diff) | |
download | u-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.py | 2 | ||||
-rw-r--r-- | tools/buildman/func_test.py | 17 |
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) |