mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-28 15:41:40 +00:00
binman: Overwrite symlink if it already exists
Without this re-building will fail with an error when trying to create the symlink for the second time with an already exists error. Signed-off-by: Andrew Davis <afd@ti.com> [n-francis@ti.com: Added support for test output dir and testcase] Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
This commit is contained in:
parent
1ee652ab2f
commit
15432ea611
2 changed files with 18 additions and 2 deletions
|
@ -353,7 +353,7 @@ class TestFunctional(unittest.TestCase):
|
|||
use_expanded=False, verbosity=None, allow_missing=False,
|
||||
allow_fake_blobs=False, extra_indirs=None, threads=None,
|
||||
test_section_timeout=False, update_fdt_in_elf=None,
|
||||
force_missing_bintools='', ignore_missing=False):
|
||||
force_missing_bintools='', ignore_missing=False, output_dir=None):
|
||||
"""Run binman with a given test file
|
||||
|
||||
Args:
|
||||
|
@ -384,6 +384,7 @@ class TestFunctional(unittest.TestCase):
|
|||
update_fdt_in_elf: Value to pass with --update-fdt-in-elf=xxx
|
||||
force_missing_tools (str): comma-separated list of bintools to
|
||||
regard as missing
|
||||
output_dir: Specific output directory to use for image using -O
|
||||
|
||||
Returns:
|
||||
int return code, 0 on success
|
||||
|
@ -430,6 +431,8 @@ class TestFunctional(unittest.TestCase):
|
|||
if extra_indirs:
|
||||
for indir in extra_indirs:
|
||||
args += ['-I', indir]
|
||||
if output_dir:
|
||||
args += ['-O', output_dir]
|
||||
return self._DoBinman(*args)
|
||||
|
||||
def _SetupDtb(self, fname, outfile='u-boot.dtb'):
|
||||
|
@ -6174,7 +6177,7 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
|
|||
str(e.exception))
|
||||
|
||||
def testSymlink(self):
|
||||
"""Test that image files can be named"""
|
||||
"""Test that image files can be symlinked"""
|
||||
retcode = self._DoTestFile('259_symlink.dts', debug=True, map=True)
|
||||
self.assertEqual(0, retcode)
|
||||
image = control.images['test_image']
|
||||
|
@ -6183,6 +6186,17 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
|
|||
self.assertTrue(os.path.islink(sname))
|
||||
self.assertEqual(os.readlink(sname), fname)
|
||||
|
||||
def testSymlinkOverwrite(self):
|
||||
"""Test that symlinked images can be overwritten"""
|
||||
testdir = TestFunctional._MakeInputDir('symlinktest')
|
||||
self._DoTestFile('259_symlink.dts', debug=True, map=True, output_dir=testdir)
|
||||
# build the same image again in the same directory so that existing symlink is present
|
||||
self._DoTestFile('259_symlink.dts', debug=True, map=True, output_dir=testdir)
|
||||
fname = tools.get_output_filename('test_image.bin')
|
||||
sname = tools.get_output_filename('symlink_to_test.bin')
|
||||
self.assertTrue(os.path.islink(sname))
|
||||
self.assertEqual(os.readlink(sname), fname)
|
||||
|
||||
def testSymbolsElf(self):
|
||||
"""Test binman can assign symbols embedded in an ELF file"""
|
||||
if not elf.ELF_TOOLS:
|
||||
|
|
|
@ -182,6 +182,8 @@ class Image(section.Entry_section):
|
|||
# Create symlink to file if symlink given
|
||||
if self._symlink is not None:
|
||||
sname = tools.get_output_filename(self._symlink)
|
||||
if os.path.islink(sname):
|
||||
os.remove(sname)
|
||||
os.symlink(fname, sname)
|
||||
|
||||
def WriteMap(self):
|
||||
|
|
Loading…
Reference in a new issue