binman: Workaround lz4 cli padding in test cases
authorJiaxun Yang <jiaxun.yang@flygoat.com>
Thu, 10 Apr 2025 12:43:03 +0000 (06:43 -0600)
committerTom Rini <trini@konsulko.com>
Fri, 11 Apr 2025 20:29:52 +0000 (14:29 -0600)
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@flygoat.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
tools/binman/ftest.py
tools/binman/test/184_compress_section_size.dts

index 948fcc0..92df2a0 100644 (file)
@@ -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)
index 95ed30a..1c1dbd5 100644 (file)
@@ -6,6 +6,7 @@
                section {
                        size = <0x30>;
                        compress = "lz4";
+                       pad-byte = <0xff>;
                        blob {
                                filename = "compress";
                        };