mirror of
https://github.com/u-boot/u-boot.git
synced 2025-05-09 03:21:51 +00:00
binman: Convert to using the FIP bintool
Update the FIP tests to use this bintool, instead of running fiptool directly. This simplifies the code and provides more consistency as well as supporting missing bintools. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
5417da574e
commit
388f04fb67
2 changed files with 8 additions and 41 deletions
|
@ -623,31 +623,5 @@ directory''')
|
|||
return 0
|
||||
|
||||
|
||||
def fiptool(fname, *fip_args):
|
||||
"""Run fiptool with provided arguments
|
||||
|
||||
If the tool fails then this function raises an exception and prints out the
|
||||
output and stderr.
|
||||
|
||||
Args:
|
||||
fname (str): Filename of FIP
|
||||
*fip_args: List of arguments to pass to fiptool
|
||||
|
||||
Returns:
|
||||
CommandResult: object containing the results
|
||||
|
||||
Raises:
|
||||
ValueError: the tool failed to run
|
||||
"""
|
||||
args = ['fiptool', fname] + list(fip_args)
|
||||
result = command.RunPipe([args], capture=not VERBOSE,
|
||||
capture_stderr=not VERBOSE, raise_on_error=False)
|
||||
if result.return_code:
|
||||
print(result.stderr, file=sys.stderr)
|
||||
raise ValueError("Failed to run (error %d): '%s'" %
|
||||
(result.return_code, ' '.join(args)))
|
||||
return result
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main(sys.argv[1:], OUR_FILE)) # pragma: no cover
|
||||
|
|
|
@ -22,13 +22,11 @@ sys.path.insert(2, os.path.join(OUR_PATH, '..'))
|
|||
# pylint: disable=C0413
|
||||
from patman import test_util
|
||||
from patman import tools
|
||||
from binman import bintool
|
||||
from binman import fip_util
|
||||
|
||||
HAVE_FIPTOOL = True
|
||||
try:
|
||||
tools.Run('which', 'fiptool')
|
||||
except ValueError:
|
||||
HAVE_FIPTOOL = False
|
||||
FIPTOOL = bintool.Bintool.create('fiptool')
|
||||
HAVE_FIPTOOL = FIPTOOL.is_present()
|
||||
|
||||
# pylint: disable=R0902,R0904
|
||||
class TestFip(unittest.TestCase):
|
||||
|
@ -286,13 +284,13 @@ blah blah''', binary=False)
|
|||
data = fip.get_data()
|
||||
fname = tools.GetOutputFilename('data.fip')
|
||||
tools.WriteFile(fname, data)
|
||||
result = fip_util.fiptool('info', fname)
|
||||
result = FIPTOOL.info(fname)
|
||||
self.assertEqual(
|
||||
'''Firmware Updater NS_BL2U: offset=0xB0, size=0x7, cmdline="--fwu"
|
||||
Trusted Boot Firmware BL2: offset=0xC0, size=0xE, cmdline="--tb-fw"
|
||||
00010203-0405-0607-0809-0A0B0C0D0E0F: offset=0xD0, size=0xE, cmdline="--blob"
|
||||
''',
|
||||
result.stdout)
|
||||
result)
|
||||
|
||||
fwu_data = b'my data'
|
||||
tb_fw_data = b'some more data'
|
||||
|
@ -315,11 +313,7 @@ Trusted Boot Firmware BL2: offset=0xC0, size=0xE, cmdline="--tb-fw"
|
|||
|
||||
fname = tools.GetOutputFilename('data.fip')
|
||||
uuid = 'e3b78d9e-4a64-11ec-b45c-fba2b9b49788'
|
||||
fip_util.fiptool('create', '--align', '8', '--plat-toc-flags', '0x123',
|
||||
'--fwu', fwu,
|
||||
'--tb-fw', tb_fw,
|
||||
'--blob', f'uuid={uuid},file={other_fw}',
|
||||
fname)
|
||||
FIPTOOL.create_new(fname, 8, 0x123, fwu, tb_fw, uuid, other_fw)
|
||||
|
||||
return fip_util.FipReader(tools.ReadFile(fname))
|
||||
|
||||
|
@ -396,9 +390,8 @@ Trusted Boot Firmware BL2: offset=0xC0, size=0xE, cmdline="--tb-fw"
|
|||
"""Check some error reporting from fiptool"""
|
||||
with self.assertRaises(Exception) as err:
|
||||
with test_util.capture_sys_output():
|
||||
fip_util.fiptool('create', '--fred')
|
||||
self.assertIn("Failed to run (error 1): 'fiptool create --fred'",
|
||||
str(err.exception))
|
||||
FIPTOOL.create_bad()
|
||||
self.assertIn("unrecognized option '--fred'", str(err.exception))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue