Merge git://git.denx.de/u-boot-dm

This commit is contained in:
Tom Rini 2018-05-16 17:32:59 -04:00
commit 00ef2cd6c7
4 changed files with 44 additions and 3 deletions

View file

@ -198,6 +198,12 @@ static int pinctrl_select_state_simple(struct udevice *dev)
int pinctrl_select_state(struct udevice *dev, const char *statename) int pinctrl_select_state(struct udevice *dev, const char *statename)
{ {
/*
* Some device which is logical like mmc.blk, do not have
* a valid ofnode.
*/
if (!ofnode_valid(dev->node))
return 0;
/* /*
* Try full-implemented pinctrl first. * Try full-implemented pinctrl first.
* If it fails or is not implemented, try simple one. * If it fails or is not implemented, try simple one.

View file

@ -6,6 +6,7 @@ import errno
import glob import glob
import os import os
import shutil import shutil
import sys
import threading import threading
import command import command
@ -26,6 +27,9 @@ def Mkdir(dirname, parents = False):
os.mkdir(dirname) os.mkdir(dirname)
except OSError as err: except OSError as err:
if err.errno == errno.EEXIST: if err.errno == errno.EEXIST:
if os.path.realpath('.') == os.path.realpath(dirname):
print "Cannot create the current working directory '%s'!" % dirname
sys.exit(1)
pass pass
else: else:
raise raise

View file

@ -80,6 +80,28 @@ def ShowActions(series, why_selected, boards_selected, builder, options):
print ('Total boards to build for each commit: %d\n' % print ('Total boards to build for each commit: %d\n' %
len(why_selected['all'])) len(why_selected['all']))
def CheckOutputDir(output_dir):
"""Make sure that the output directory is not within the current directory
If we try to use an output directory which is within the current directory
(which is assumed to hold the U-Boot source) we may end up deleting the
U-Boot source code. Detect this and print an error in this case.
Args:
output_dir: Output directory path to check
"""
path = os.path.realpath(output_dir)
cwd_path = os.path.realpath('.')
while True:
if os.path.realpath(path) == cwd_path:
Print("Cannot use output directory '%s' since it is within the current directtory '%s'" %
(path, cwd_path))
sys.exit(1)
parent = os.path.dirname(path)
if parent == path:
break
path = parent
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): clean_dir=False):
"""The main control code for buildman """The main control code for buildman
@ -251,9 +273,9 @@ def DoBuildman(options, args, toolchains=None, make_func=None, boards=None,
# output directory itself rather than any subdirectory. # output directory itself rather than any subdirectory.
if not options.no_subdirs: if not options.no_subdirs:
output_dir = os.path.join(options.output_dir, dirname) output_dir = os.path.join(options.output_dir, dirname)
if (clean_dir and output_dir != options.output_dir and if clean_dir and os.path.exists(output_dir):
os.path.exists(output_dir)): shutil.rmtree(output_dir)
shutil.rmtree(output_dir) CheckOutputDir(output_dir)
builder = Builder(toolchains, output_dir, options.git_dir, builder = Builder(toolchains, output_dir, options.git_dir,
options.threads, options.jobs, gnu_make=gnu_make, checkout=True, options.threads, options.jobs, gnu_make=gnu_make, checkout=True,
show_unknown=options.show_unknown, step=options.step, show_unknown=options.show_unknown, step=options.step,

View file

@ -519,3 +519,12 @@ class TestFunctional(unittest.TestCase):
self._RunControl('-b', self._test_branch, clean_dir=False) self._RunControl('-b', self._test_branch, clean_dir=False)
self.assertEqual(self._builder.count, self._total_builds) self.assertEqual(self._builder.count, self._total_builds)
self.assertEqual(self._builder.fail, 0) self.assertEqual(self._builder.fail, 0)
def testBadOutputDir(self):
"""Test building with an output dir the same as out current dir"""
self._test_branch = '/__dev/__testbranch'
with self.assertRaises(SystemExit):
self._RunControl('-b', self._test_branch, '-o', os.getcwd())
with self.assertRaises(SystemExit):
self._RunControl('-b', self._test_branch, '-o',
os.path.join(os.getcwd(), 'test'))