[PATCH 5/7] binman: Workaround lz4 cli padding in test cases
Mattijs Korpershoek
mkorpershoek at kernel.org
Thu Apr 10 11:27:00 CEST 2025
Hi Simon,
Thank you for the patch.
On mar., mars 04, 2025 at 06:09, Simon Glass <sjg at chromium.org> wrote:
> From: Jiaxun Yang <jiaxun.yang at flygoat.com>
>
> Newer lz4 util is not happy with any padding at end of file,
> it would abort with error message like:
>
> Stream followed by undecodable data at position 43.
>
> Workaround by skipping testCompUtilPadding test case and manually
> strip padding in testCompressSectionSize test case.
>
> Signed-off-by: Jiaxun Yang <jiaxun.yang at flygoat.com>
> Reviewed-by: Simon Glass <sjg at chromium.org>
> Signed-off-by: Simon Glass <sjg at chromium.org>
Tested that this solves issues when using lz4 1.9.4.
This patch solves:
https://source.denx.de/u-boot/custodians/u-boot-dm/-/issues/38
Tested-by: Mattijs Korpershoek <mkorpershoek at kernel.org>
> ---
>
> tools/binman/ftest.py | 7 +++++--
> tools/binman/test/184_compress_section_size.dts | 1 +
> 2 files changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py
> index 1a92a99b511..e46a1e84372 100644
> --- a/tools/binman/ftest.py
> +++ b/tools/binman/ftest.py
> @@ -4613,6 +4613,8 @@ class TestFunctional(unittest.TestCase):
> dtb.Scan()
> props = self._GetPropTree(dtb, ['offset', 'image-pos', 'size',
> 'uncomp-size'])
> + data = data[:0x30]
> + data = data.rstrip(b'\xff')
> orig = self._decompress(data)
> self.assertEqual(COMPRESS_DATA + U_BOOT_DATA, orig)
> expected = {
> @@ -6218,8 +6220,9 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
>
> def testCompUtilPadding(self):
> """Test padding of compression algorithms"""
> - # Skip zstd because it doesn't support padding
> - for bintool in [v for k,v in self.comp_bintools.items() if k != 'zstd']:
> + # Skip zstd and lz4 because they doesn't support padding
> + for bintool in [v for k,v in self.comp_bintools.items()
> + if not k in ['zstd', 'lz4']]:
> self._CheckBintool(bintool)
> data = bintool.compress(COMPRESS_DATA)
> self.assertNotEqual(COMPRESS_DATA, data)
> diff --git a/tools/binman/test/184_compress_section_size.dts b/tools/binman/test/184_compress_section_size.dts
> index 95ed30add1a..1c1dbd5f580 100644
> --- a/tools/binman/test/184_compress_section_size.dts
> +++ b/tools/binman/test/184_compress_section_size.dts
> @@ -6,6 +6,7 @@
> section {
> size = <0x30>;
> compress = "lz4";
> + pad-byte = <0xff>;
> blob {
> filename = "compress";
> };
> --
> 2.43.0
More information about the U-Boot
mailing list