Some entries need to exist only if certain conditions are met. For example, an
entry may want to appear in the image only if a file has a particular format.
+Also, the ``optional`` property may be used to mark entries as optional::
+
+ tee-os {
+ filename = "tee.bin";
+ optional;
+ };
+
Obviously the entry must exist in the image description for it to be processed
at all, so a way needs to be found to have the entry remove itself.
fake_size = self.assume_size
self._pathname = self.check_fake_fname(self._filename, fake_size)
self.missing = True
+ if self.optional:
+ self.mark_absent("missing but optional")
if not self.faked:
content_size = 0
if self.assume_size: # Ensure we get test coverage on next line
b"sorry you're alive\n")
COMPRESS_DATA = b'compress xxxxxxxxxxxxxxxxxxxxxx data'
COMPRESS_DATA_BIG = COMPRESS_DATA * 2
+MISSING_DATA = b'missing'
REFCODE_DATA = b'refcode'
FSP_M_DATA = b'fsp_m'
FSP_S_DATA = b'fsp_s'
"Node '/binman/fit/images/@tee-SEQ/tee-os': Invalid OP-TEE file: size mismatch (expected 0x4, have 0xe)",
str(exc.exception))
- def testExtblobOptional(self):
+ def testExtblobMissingOptional(self):
"""Test an image with an external blob that is optional"""
with terminal.capture() as (stdout, stderr):
data = self._DoReadFile('266_blob_ext_opt.dts')
self.assertEqual(REFCODE_DATA, data)
- err = stderr.getvalue()
- self.assertRegex(
- err,
- "Image '.*' is missing optional external blobs but is still functional: missing")
+ self.assertNotIn(MISSING_DATA, data)
def testSectionInner(self):
"""Test an inner section with a size"""