binman: Add test for u-boot-spl-bss-pad
Add a test that we can pad the BSS with zero bytes. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
a25ebed36f
commit
5650984300
@ -88,6 +88,10 @@ class TestFunctional(unittest.TestCase):
|
|||||||
with open(self.TestFile('descriptor.bin')) as fd:
|
with open(self.TestFile('descriptor.bin')) as fd:
|
||||||
TestFunctional._MakeInputFile('descriptor.bin', fd.read())
|
TestFunctional._MakeInputFile('descriptor.bin', fd.read())
|
||||||
|
|
||||||
|
# ELF file with a '__bss_size' symbol
|
||||||
|
with open(self.TestFile('bss_data')) as fd:
|
||||||
|
TestFunctional._MakeInputFile('spl/u-boot-spl', fd.read())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def tearDownClass(self):
|
def tearDownClass(self):
|
||||||
"""Remove the temporary input directory and its contents"""
|
"""Remove the temporary input directory and its contents"""
|
||||||
@ -814,6 +818,11 @@ class TestFunctional(unittest.TestCase):
|
|||||||
data = self._DoReadFile('46_intel-vbt.dts')
|
data = self._DoReadFile('46_intel-vbt.dts')
|
||||||
self.assertEqual(VBT_DATA, data[:len(VBT_DATA)])
|
self.assertEqual(VBT_DATA, data[:len(VBT_DATA)])
|
||||||
|
|
||||||
|
def testSplBssPad(self):
|
||||||
|
"""Test that we can pad SPL's BSS with zeros"""
|
||||||
|
data = self._DoReadFile('47_spl_bss_pad.dts')
|
||||||
|
self.assertEqual(U_BOOT_SPL_DATA + (chr(0) * 10) + U_BOOT_DATA, data)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
17
tools/binman/test/47_spl_bss_pad.dts
Normal file
17
tools/binman/test/47_spl_bss_pad.dts
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
/ {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
binman {
|
||||||
|
u-boot-spl {
|
||||||
|
};
|
||||||
|
|
||||||
|
u-boot-spl-bss-pad {
|
||||||
|
};
|
||||||
|
|
||||||
|
u-boot {
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
@ -11,7 +11,7 @@ CFLAGS := -march=i386 -m32 -nostdlib -I ../../../include
|
|||||||
|
|
||||||
LDS_UCODE := -T u_boot_ucode_ptr.lds
|
LDS_UCODE := -T u_boot_ucode_ptr.lds
|
||||||
|
|
||||||
TARGETS = u_boot_ucode_ptr u_boot_no_ucode_ptr
|
TARGETS = u_boot_ucode_ptr u_boot_no_ucode_ptr bss_data
|
||||||
|
|
||||||
all: $(TARGETS)
|
all: $(TARGETS)
|
||||||
|
|
||||||
@ -21,6 +21,9 @@ u_boot_no_ucode_ptr: u_boot_no_ucode_ptr.c
|
|||||||
u_boot_ucode_ptr: CFLAGS += $(LDS_UCODE)
|
u_boot_ucode_ptr: CFLAGS += $(LDS_UCODE)
|
||||||
u_boot_ucode_ptr: u_boot_ucode_ptr.c
|
u_boot_ucode_ptr: u_boot_ucode_ptr.c
|
||||||
|
|
||||||
|
bss_data: CFLAGS += bss_data.lds
|
||||||
|
bss_data: bss_data.c
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(TARGETS)
|
rm -f $(TARGETS)
|
||||||
|
|
||||||
|
BIN
tools/binman/test/bss_data
Executable file
BIN
tools/binman/test/bss_data
Executable file
Binary file not shown.
18
tools/binman/test/bss_data.c
Normal file
18
tools/binman/test/bss_data.c
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2016 Google, Inc
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: GPL-2.0+
|
||||||
|
*
|
||||||
|
* Simple program to create a _dt_ucode_base_size symbol which can be read
|
||||||
|
* by 'nm'. This is used by binman tests.
|
||||||
|
*/
|
||||||
|
|
||||||
|
int bss_data[10];
|
||||||
|
int __bss_size = sizeof(bss_data);
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
bss_data[2] = 2;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
16
tools/binman/test/bss_data.lds
Normal file
16
tools/binman/test/bss_data.lds
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2016 Google, Inc
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: GPL-2.0+
|
||||||
|
*/
|
||||||
|
|
||||||
|
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
|
||||||
|
OUTPUT_ARCH(i386)
|
||||||
|
ENTRY(_start)
|
||||||
|
|
||||||
|
SECTIONS
|
||||||
|
{
|
||||||
|
. = 0xfffffdf0;
|
||||||
|
_start = .;
|
||||||
|
__bss_size = 10;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user