binman: Change how faked blobs are created
At present fake blobs are created but internally an empty blob is used. Change it to use the contents of the faked file. Also return whether the blob was faked, in case the caller needs to know that. Add a TODO to put fake blobs in their own directory. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
This commit is contained in:
@@ -1500,7 +1500,8 @@ Some ideas:
|
||||
- Figure out how to make Fdt support changing the node order, so that
|
||||
Node.AddSubnode() can support adding a node before another, existing node.
|
||||
Perhaps it should completely regenerate the flat tree?
|
||||
|
||||
- Put faked files into a separate subdir and remove them on start-up, to avoid
|
||||
seeing them as 'real' files on a subsequent run
|
||||
|
||||
--
|
||||
Simon Glass <sjg@chromium.org>
|
||||
|
@@ -999,15 +999,18 @@ features to produce new behaviours.
|
||||
fname (str): Filename to check
|
||||
|
||||
Returns:
|
||||
fname (str): Filename of faked file
|
||||
tuple:
|
||||
fname (str): Filename of faked file
|
||||
bool: True if the blob was faked, False if not
|
||||
"""
|
||||
if self.allow_fake and not pathlib.Path(fname).is_file():
|
||||
outfname = tools.get_output_filename(os.path.basename(fname))
|
||||
with open(outfname, "wb") as out:
|
||||
out.truncate(1024)
|
||||
self.faked = True
|
||||
return outfname
|
||||
return fname
|
||||
tout.info(f"Entry '{self._node.path}': Faked file '{outfname}'")
|
||||
return outfname, True
|
||||
return fname, False
|
||||
|
||||
def CheckFakedBlobs(self, faked_blobs_list):
|
||||
"""Check if any entries in this section have faked external blobs
|
||||
|
@@ -41,10 +41,11 @@ class Entry_blob(Entry):
|
||||
self.external and self.section.GetAllowMissing())
|
||||
# Allow the file to be missing
|
||||
if not self._pathname:
|
||||
self._pathname = self.check_fake_fname(self._filename)
|
||||
self.SetContents(b'')
|
||||
self._pathname, faked = self.check_fake_fname(self._filename)
|
||||
self.missing = True
|
||||
return True
|
||||
if not faked:
|
||||
self.SetContents(b'')
|
||||
return True
|
||||
|
||||
self.ReadBlobContents()
|
||||
return True
|
||||
|
@@ -37,7 +37,7 @@ class Entry_blob_ext_list(Entry_blob):
|
||||
missing = False
|
||||
pathnames = []
|
||||
for fname in self._filenames:
|
||||
fname = self.check_fake_fname(fname)
|
||||
fname, _ = self.check_fake_fname(fname)
|
||||
pathname = tools.get_input_filename(
|
||||
fname, self.external and self.section.GetAllowMissing())
|
||||
# Allow the file to be missing
|
||||
|
Reference in New Issue
Block a user