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:
|
||||
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
|
||||
def tearDownClass(self):
|
||||
"""Remove the temporary input directory and its contents"""
|
||||
@ -814,6 +818,11 @@ class TestFunctional(unittest.TestCase):
|
||||
data = self._DoReadFile('46_intel-vbt.dts')
|
||||
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__":
|
||||
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
|
||||
|
||||
TARGETS = u_boot_ucode_ptr u_boot_no_ucode_ptr
|
||||
TARGETS = u_boot_ucode_ptr u_boot_no_ucode_ptr bss_data
|
||||
|
||||
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: u_boot_ucode_ptr.c
|
||||
|
||||
bss_data: CFLAGS += bss_data.lds
|
||||
bss_data: bss_data.c
|
||||
|
||||
clean:
|
||||
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