diff options
| author | Tom Rini <[email protected]> | 2022-01-13 07:34:27 -0500 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2022-01-13 07:34:27 -0500 |
| commit | 37b876359fbd90434b37527fa96f72a31af20f81 (patch) | |
| tree | 3a8d677b0e1f0038d84aca54986047968e27b007 /tools | |
| parent | a02af84e03e018d7cd08bb3070cbe5517004712b (diff) | |
| parent | 6e4a7eaf7d6c9aedafa19aa57553ae44dba5ca0d (diff) | |
Merge branch '2022-01-12-assorted-updates'
- Fix binman fake blob support to write outside source directory
- Azure now has stages in the pipeline
- Update to latest focal tag for containers in CI.
- Finish dropping LynxOS
- Add migration message for timer code
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/binman/control.py | 8 | ||||
| -rw-r--r-- | tools/binman/entry.py | 20 | ||||
| -rw-r--r-- | tools/binman/etype/blob.py | 8 | ||||
| -rw-r--r-- | tools/binman/ftest.py | 21 | ||||
| -rw-r--r-- | tools/binman/test/217_fake_blob.dts (renamed from tools/binman/test/203_fake_blob.dts) | 0 | ||||
| -rw-r--r-- | tools/docker/Dockerfile | 2 |
6 files changed, 38 insertions, 21 deletions
diff --git a/tools/binman/control.py b/tools/binman/control.py index 4b3ce23fb4c..f4c1fd01568 100644 --- a/tools/binman/control.py +++ b/tools/binman/control.py @@ -577,9 +577,11 @@ def ProcessImage(image, update_fdt, write_map, get_contents=True, 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) diff --git a/tools/binman/entry.py b/tools/binman/entry.py index 54cc3726b9d..bac90bbbcde 100644 --- a/tools/binman/entry.py +++ b/tools/binman/entry.py @@ -7,6 +7,7 @@ from collections import namedtuple import importlib import os +import pathlib import sys from dtoc import fdt_util @@ -972,6 +973,25 @@ features to produce new behaviours. 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 diff --git a/tools/binman/etype/blob.py b/tools/binman/etype/blob.py index 65ebb2ecf4d..59728f368ec 100644 --- a/tools/binman/etype/blob.py +++ b/tools/binman/etype/blob.py @@ -5,8 +5,6 @@ # 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 @@ -38,16 +36,12 @@ class Entry_blob(Entry): 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 diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py index a9b7880f362..f4ff7b65831 100644 --- a/tools/binman/ftest.py +++ b/tools/binman/ftest.py @@ -4667,16 +4667,6 @@ class TestFunctional(unittest.TestCase): str(e.exception), "Not enough space in '.*u_boot_binman_embed_sm' for data length.*") - def testFakeBlob(self): - """Test handling of faking an external blob""" - with test_util.capture_sys_output() as (stdout, stderr): - self._DoTestFile('203_fake_blob.dts', allow_missing=True, - allow_fake_blobs=True) - err = stderr.getvalue() - self.assertRegex(err, - "Image '.*' has faked external blobs and is non-functional: .*") - os.remove('binman_faking_test_blob') - def testVersion(self): """Test we can get the binman version""" version = '(unreleased)' @@ -4965,5 +4955,16 @@ fdt fdtmap Extract the devicetree blob from the fdtmap # There should be a U-Boot after the final FIP self.assertEqual(U_BOOT_DATA, data[-4:]) + def testFakeBlob(self): + """Test handling of faking an external blob""" + with test_util.capture_sys_output() as (stdout, stderr): + self._DoTestFile('217_fake_blob.dts', allow_missing=True, + allow_fake_blobs=True) + err = stderr.getvalue() + self.assertRegex( + err, + "Image '.*' has faked external blobs and is non-functional: .*") + + if __name__ == "__main__": unittest.main() diff --git a/tools/binman/test/203_fake_blob.dts b/tools/binman/test/217_fake_blob.dts index 22cf67f4f83..22cf67f4f83 100644 --- a/tools/binman/test/203_fake_blob.dts +++ b/tools/binman/test/217_fake_blob.dts diff --git a/tools/docker/Dockerfile b/tools/docker/Dockerfile index fb422e75881..f19e618ffba 100644 --- a/tools/docker/Dockerfile +++ b/tools/docker/Dockerfile @@ -2,7 +2,7 @@ # This Dockerfile is used to build an image containing basic stuff to be used # to build U-Boot and run our test suites. -FROM ubuntu:focal-20211006 +FROM ubuntu:focal-20220105 MAINTAINER Tom Rini <[email protected]> LABEL Description=" This image is for building U-Boot inside a container" |
