mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-06-28 17:42:07 +00:00
binman: Add tests for skip-at-start sections
At present this feature is tested view the end-at-4gb feature. Add some tests of its own, including the operation of padding. The third test here shows binman's current, inconsistent approach to padding in the top-level section. Future patches in this series will address this. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
a4dfe3e473
commit
f2c0dd85ad
4 changed files with 121 additions and 0 deletions
|
@ -3752,6 +3752,65 @@ class TestFunctional(unittest.TestCase):
|
||||||
self.assertIn("too small to hold data (need %#x more bytes)" % short,
|
self.assertIn("too small to hold data (need %#x more bytes)" % short,
|
||||||
str(e.exception))
|
str(e.exception))
|
||||||
|
|
||||||
|
def testSkipAtStart(self):
|
||||||
|
"""Test handling of skip-at-start section"""
|
||||||
|
data = self._DoReadFile('177_skip_at_start.dts')
|
||||||
|
self.assertEqual(U_BOOT_DATA, data)
|
||||||
|
|
||||||
|
image = control.images['image']
|
||||||
|
entries = image.GetEntries()
|
||||||
|
section = entries['section']
|
||||||
|
self.assertEqual(0, section.offset)
|
||||||
|
self.assertEqual(len(U_BOOT_DATA), section.size)
|
||||||
|
self.assertEqual(U_BOOT_DATA, section.GetData())
|
||||||
|
|
||||||
|
entry = section.GetEntries()['u-boot']
|
||||||
|
self.assertEqual(16, entry.offset)
|
||||||
|
self.assertEqual(len(U_BOOT_DATA), entry.size)
|
||||||
|
self.assertEqual(U_BOOT_DATA, entry.data)
|
||||||
|
|
||||||
|
def testSkipAtStartPad(self):
|
||||||
|
"""Test handling of skip-at-start section with padded entry"""
|
||||||
|
data = self._DoReadFile('178_skip_at_start_pad.dts')
|
||||||
|
before = tools.GetBytes(0, 8)
|
||||||
|
after = tools.GetBytes(0, 4)
|
||||||
|
all = before + U_BOOT_DATA + after
|
||||||
|
self.assertEqual(all, data)
|
||||||
|
|
||||||
|
image = control.images['image']
|
||||||
|
entries = image.GetEntries()
|
||||||
|
section = entries['section']
|
||||||
|
self.assertEqual(0, section.offset)
|
||||||
|
self.assertEqual(len(all), section.size)
|
||||||
|
self.assertEqual(all, section.GetData())
|
||||||
|
|
||||||
|
entry = section.GetEntries()['u-boot']
|
||||||
|
self.assertEqual(16, entry.offset)
|
||||||
|
self.assertEqual(len(all), entry.size)
|
||||||
|
self.assertEqual(U_BOOT_DATA, entry.data)
|
||||||
|
|
||||||
|
def testSkipAtStartSectionPad(self):
|
||||||
|
"""Test handling of skip-at-start section with padding"""
|
||||||
|
data = self._DoReadFile('179_skip_at_start_section_pad.dts')
|
||||||
|
before = tools.GetBytes(0, 8)
|
||||||
|
after = tools.GetBytes(0, 4)
|
||||||
|
all = before + U_BOOT_DATA + after
|
||||||
|
|
||||||
|
# This is not correct, but it is what binman currently produces
|
||||||
|
self.assertEqual(tools.GetBytes(0, 16) + U_BOOT_DATA + after, data)
|
||||||
|
|
||||||
|
image = control.images['image']
|
||||||
|
entries = image.GetEntries()
|
||||||
|
section = entries['section']
|
||||||
|
self.assertEqual(0, section.offset)
|
||||||
|
self.assertEqual(len(all), section.size)
|
||||||
|
self.assertIsNone(section.data)
|
||||||
|
self.assertEqual(all, section.GetData())
|
||||||
|
|
||||||
|
entry = section.GetEntries()['u-boot']
|
||||||
|
self.assertEqual(16, entry.offset)
|
||||||
|
self.assertEqual(len(U_BOOT_DATA), entry.size)
|
||||||
|
self.assertEqual(U_BOOT_DATA, entry.data)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|
19
tools/binman/test/177_skip_at_start.dts
Normal file
19
tools/binman/test/177_skip_at_start.dts
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Copyright 2018 NXP
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
/ {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
binman {
|
||||||
|
section {
|
||||||
|
skip-at-start = <16>;
|
||||||
|
u-boot {
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
21
tools/binman/test/178_skip_at_start_pad.dts
Normal file
21
tools/binman/test/178_skip_at_start_pad.dts
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Copyright 2018 NXP
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
/ {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
binman {
|
||||||
|
section {
|
||||||
|
skip-at-start = <16>;
|
||||||
|
u-boot {
|
||||||
|
pad-before = <8>;
|
||||||
|
pad-after = <4>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
22
tools/binman/test/179_skip_at_start_section_pad.dts
Normal file
22
tools/binman/test/179_skip_at_start_section_pad.dts
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Copyright 2018 NXP
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
/ {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
binman {
|
||||||
|
section {
|
||||||
|
skip-at-start = <16>;
|
||||||
|
pad-before = <8>;
|
||||||
|
pad-after = <4>;
|
||||||
|
|
||||||
|
u-boot {
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
Loading…
Add table
Add a link
Reference in a new issue