summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2020-10-26 17:40:08 -0600
committerSimon Glass <sjg@chromium.org>2020-10-29 14:42:59 -0600
commitef439ed191a0655a86f5b4035cec9cc57e97d8b1 (patch)
treebd7fff687961fe8ac0ab60b2fcfdc28b96446a58 /tools
parent9248c8d9c9674d705216e51161c1f0f473fc7fa3 (diff)
downloadu-boot-ef439ed191a0655a86f5b4035cec9cc57e97d8b1.tar.gz
binman: Update testPackExtra with more checks
Check the contents of each section to make sure it is actually in the right place. Also fix a whitespace error in the .dts file. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'tools')
-rw-r--r--tools/binman/ftest.py27
-rw-r--r--tools/binman/test/009_pack_extra.dts2
2 files changed, 23 insertions, 6 deletions
diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py
index 4f7e22612c..481b8fd03c 100644
--- a/tools/binman/ftest.py
+++ b/tools/binman/ftest.py
@@ -785,9 +785,8 @@ class TestFunctional(unittest.TestCase):
def testPackExtra(self):
"""Test that extra packing feature works as expected"""
- retcode = self._DoTestFile('009_pack_extra.dts')
+ data = self._DoReadFile('009_pack_extra.dts')
- self.assertEqual(0, retcode)
self.assertIn('image', control.images)
image = control.images['image']
entries = image.GetEntries()
@@ -799,30 +798,48 @@ class TestFunctional(unittest.TestCase):
self.assertEqual(0, entry.offset)
self.assertEqual(3, entry.pad_before)
self.assertEqual(3 + 5 + len(U_BOOT_DATA), entry.size)
+ self.assertEqual(U_BOOT_DATA, entry.data)
+ self.assertEqual(tools.GetBytes(0, 3) + U_BOOT_DATA +
+ tools.GetBytes(0, 5), data[:entry.size])
+ pos = entry.size
# Second u-boot has an aligned size, but it has no effect
self.assertIn('u-boot-align-size-nop', entries)
entry = entries['u-boot-align-size-nop']
- self.assertEqual(12, entry.offset)
- self.assertEqual(4, entry.size)
+ self.assertEqual(pos, entry.offset)
+ self.assertEqual(len(U_BOOT_DATA), entry.size)
+ self.assertEqual(U_BOOT_DATA, entry.data)
+ self.assertEqual(U_BOOT_DATA, data[pos:pos + entry.size])
+ pos += entry.size
# Third u-boot has an aligned size too
self.assertIn('u-boot-align-size', entries)
entry = entries['u-boot-align-size']
- self.assertEqual(16, entry.offset)
+ self.assertEqual(pos, entry.offset)
self.assertEqual(32, entry.size)
+ self.assertEqual(U_BOOT_DATA, entry.data)
+ self.assertEqual(U_BOOT_DATA + tools.GetBytes(0, 32 - len(U_BOOT_DATA)),
+ data[pos:pos + entry.size])
+ pos += entry.size
# Fourth u-boot has an aligned end
self.assertIn('u-boot-align-end', entries)
entry = entries['u-boot-align-end']
self.assertEqual(48, entry.offset)
self.assertEqual(16, entry.size)
+ self.assertEqual(U_BOOT_DATA, entry.data[:len(U_BOOT_DATA)])
+ self.assertEqual(U_BOOT_DATA + tools.GetBytes(0, 16 - len(U_BOOT_DATA)),
+ data[pos:pos + entry.size])
+ pos += entry.size
# Fifth u-boot immediately afterwards
self.assertIn('u-boot-align-both', entries)
entry = entries['u-boot-align-both']
self.assertEqual(64, entry.offset)
self.assertEqual(64, entry.size)
+ self.assertEqual(U_BOOT_DATA, entry.data[:len(U_BOOT_DATA)])
+ self.assertEqual(U_BOOT_DATA + tools.GetBytes(0, 64 - len(U_BOOT_DATA)),
+ data[pos:pos + entry.size])
self.CheckNoGaps(entries)
self.assertEqual(128, image.size)
diff --git a/tools/binman/test/009_pack_extra.dts b/tools/binman/test/009_pack_extra.dts
index 0765707dea..1b31555771 100644
--- a/tools/binman/test/009_pack_extra.dts
+++ b/tools/binman/test/009_pack_extra.dts
@@ -28,7 +28,7 @@
u-boot-align-both {
type = "u-boot";
- align= <64>;
+ align = <64>;
align-end = <128>;
};
};