[PATCH v2 2/4] binman: Handle missing bintools correctly in fit
Simon Glass
sjg at chromium.org
Fri Mar 3 01:02:43 CET 2023
At present these are handled as if they are allowed to be missing, but
this is only true if the -M flag is provided. Fix this and add a test.
Signed-off-by: Simon Glass <sjg at chromium.org>
---
Changes in v2:
- Add new patch to handle missing bintools correctly in fit
tools/binman/etype/fit.py | 2 ++
tools/binman/ftest.py | 10 +++++++++-
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/tools/binman/etype/fit.py b/tools/binman/etype/fit.py
index cd2943533ce..be0cdcc900f 100644
--- a/tools/binman/etype/fit.py
+++ b/tools/binman/etype/fit.py
@@ -453,6 +453,8 @@ class Entry_fit(Entry_section):
args.update({'align': fdt_util.fdt32_to_cpu(align.value)})
if self.mkimage.run(reset_timestamp=True, output_fname=output_fname,
**args) is None:
+ if not self.GetAllowMissing():
+ self.Raise("Missing tool: 'mkimage'")
# Bintool is missing; just use empty data as the output
self.record_missing_bintool(self.mkimage)
return tools.get_bytes(0, 1024)
diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py
index 062f54adb0e..b4b5019f90c 100644
--- a/tools/binman/ftest.py
+++ b/tools/binman/ftest.py
@@ -3999,9 +3999,17 @@ class TestFunctional(unittest.TestCase):
self.assertEqual(expected, data[image_pos:image_pos+size])
def testFitMissing(self):
+ """Test that binman complains if mkimage is missing"""
+ with self.assertRaises(ValueError) as e:
+ self._DoTestFile('162_fit_external.dts',
+ force_missing_bintools='mkimage')
+ self.assertIn("Node '/binman/fit': Missing tool: 'mkimage'",
+ str(e.exception))
+
+ def testFitMissingOK(self):
"""Test that binman still produces a FIT image if mkimage is missing"""
with test_util.capture_sys_output() as (_, stderr):
- self._DoTestFile('162_fit_external.dts',
+ self._DoTestFile('162_fit_external.dts', allow_missing=True,
force_missing_bintools='mkimage')
err = stderr.getvalue()
self.assertRegex(err, "Image 'image'.*missing bintools.*: mkimage")
--
2.40.0.rc0.216.gc4246ad0f0-goog
More information about the U-Boot
mailing list