faked_list = []
image.CheckFakedBlobs(faked_list)
if faked_list:
- tout.Warning("Image '%s:%s' has faked external blobs and is non-functional: %s" %
- (image.name, image.image_name,
- ' '.join([e.GetDefaultFilename() for e in faked_list])))
+ tout.Warning(
+ "Image '%s:%s' has faked external blobs and is non-functional: %s" %
+ (image.name, image.image_name,
+ ' '.join([os.path.basename(e.GetDefaultFilename())
+ for e in faked_list])))
return bool(missing_list) or bool(faked_list)
from collections import namedtuple
import importlib
import os
+import pathlib
import sys
from dtoc import fdt_util
if self.missing:
missing_list.append(self)
+ def check_fake_fname(self, fname):
+ """If the file is missing and the entry allows fake blobs, fake it
+
+ Sets self.faked to True if faked
+
+ Args:
+ fname (str): Filename to check
+
+ Returns:
+ fname (str): Filename of faked file
+ """
+ if self.allow_fake and not pathlib.Path(fname).is_file():
+ outfname = tools.GetOutputFilename(os.path.basename(fname))
+ with open(outfname, "wb") as out:
+ out.truncate(1024)
+ self.faked = True
+ return outfname
+ return fname
+
def CheckFakedBlobs(self, faked_blobs_list):
"""Check if any entries in this section have faked external blobs
# Entry-type module for blobs, which are binary objects read from files
#
-import pathlib
-
from binman.entry import Entry
from binman import state
from dtoc import fdt_util
self._filename = fdt_util.GetString(self._node, 'filename', self.etype)
def ObtainContents(self):
- if self.allow_fake and not pathlib.Path(self._filename).is_file():
- with open(self._filename, "wb") as out:
- out.truncate(1024)
- self.faked = True
-
self._filename = self.GetDefaultFilename()
self._pathname = tools.GetInputFilename(self._filename,
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.missing = True
return True
self.assertRegex(
err,
"Image '.*' has faked external blobs and is non-functional: .*")
- os.remove('binman_faking_test_blob')
if __name__ == "__main__":