[PATCH v2 11/38] binman: Allow faked blobs in blob-ext-list
Simon Glass
sjg at chromium.org
Mon Jan 10 04:13:46 CET 2022
Since this is a list of blobs, each blob should have the ability to be
faked, as with blob-ext. Update the Entry base class to set allow_fake
and use the base class in the section code also, so that this propagagtes
to blob-ext-list, which is not a section.
Signed-off-by: Simon Glass <sjg at chromium.org>
---
(no changes since v1)
tools/binman/entry.py | 2 +-
tools/binman/etype/blob_ext_list.py | 1 +
tools/binman/etype/section.py | 1 +
tools/binman/ftest.py | 8 ++++++++
tools/binman/test/218_blob_ext_list_fake.dts | 14 ++++++++++++++
5 files changed, 25 insertions(+), 1 deletion(-)
create mode 100644 tools/binman/test/218_blob_ext_list_fake.dts
diff --git a/tools/binman/entry.py b/tools/binman/entry.py
index bac90bbbcde..e4a1f2d5d5c 100644
--- a/tools/binman/entry.py
+++ b/tools/binman/entry.py
@@ -960,7 +960,7 @@ features to produce new behaviours.
Args:
allow_fake: True if allowed, False if not allowed
"""
- pass
+ self.allow_fake = allow_fake
def CheckMissing(self, missing_list):
"""Check if any entries in this section have missing external blobs
diff --git a/tools/binman/etype/blob_ext_list.py b/tools/binman/etype/blob_ext_list.py
index 136ae819946..29c9092dc35 100644
--- a/tools/binman/etype/blob_ext_list.py
+++ b/tools/binman/etype/blob_ext_list.py
@@ -37,6 +37,7 @@ class Entry_blob_ext_list(Entry_blob):
missing = False
pathnames = []
for fname in self._filenames:
+ fname = self.check_fake_fname(fname)
pathname = tools.GetInputFilename(
fname, self.external and self.section.GetAllowMissing())
# Allow the file to be missing
diff --git a/tools/binman/etype/section.py b/tools/binman/etype/section.py
index 7a55d032318..fdd4cbb21ad 100644
--- a/tools/binman/etype/section.py
+++ b/tools/binman/etype/section.py
@@ -805,6 +805,7 @@ class Entry_section(Entry):
Args:
allow_fake_blob: True if allowed, False if not allowed
"""
+ super().SetAllowFakeBlob(allow_fake)
for entry in self._entries.values():
entry.SetAllowFakeBlob(allow_fake)
diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py
index 6a7647311ba..ac6aabbf9c3 100644
--- a/tools/binman/ftest.py
+++ b/tools/binman/ftest.py
@@ -4982,6 +4982,14 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
err,
"Image '.*' has faked external blobs and is non-functional: .*")
+ def testExtblobListFaked(self):
+ """Test an extblob with missing external blob that are faked"""
+ with test_util.capture_sys_output() as (stdout, stderr):
+ self._DoTestFile('216_blob_ext_list_missing.dts',
+ allow_fake_blobs=True)
+ err = stderr.getvalue()
+ self.assertRegex(err, "Image 'main-section'.*faked.*: blob-ext-list")
+
if __name__ == "__main__":
unittest.main()
diff --git a/tools/binman/test/218_blob_ext_list_fake.dts b/tools/binman/test/218_blob_ext_list_fake.dts
new file mode 100644
index 00000000000..54ee54fdaab
--- /dev/null
+++ b/tools/binman/test/218_blob_ext_list_fake.dts
@@ -0,0 +1,14 @@
+// SPDX-License-Identifier: GPL-2.0+
+
+/dts-v1/;
+
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ binman {
+ blob-ext-list {
+ filenames = "refcode.bin", "fake-file";
+ };
+ };
+};
--
2.34.1.575.g55b058a8bb-goog
More information about the U-Boot
mailing list