[Concept,12/19] test: py: Fix test_source breaking later tests
Commit Message
From: Simon Glass <sjg@chromium.org>
The source command's ':' and '#' variants use the global image_load_addr
variable, not the loadaddr env var. Prior tests (e.g. PXE) can change
image_load_addr via load commands, causing test_source to look for the
FIT at the wrong address. Fix this by explicitly setting loadaddr before
loading the FIT, which triggers the env callback that synchronises
image_load_addr.
Also restore the control FDT and clean up loadaddr at the end so that
later tests are not affected by the modified FDT pointer.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
test/py/tests/test_source.py | 10 ++++++++++
1 file changed, 10 insertions(+)
@@ -15,6 +15,12 @@ def test_source(ubman):
its = os.path.join(ubman.config.source_dir, 'test/py/tests/source.its')
fit = os.path.join(ubman.config.build_dir, 'source.itb')
utils.run_and_log(ubman, (mkimage, '-f', its, fit))
+
+ # Set loadaddr to match CONFIG_SYS_LOAD_ADDR, in case a previous test
+ # (e.g. PXE) changed image_load_addr. The 'source :' and 'source #'
+ # variants use image_load_addr, which is synchronised via the loadaddr
+ # env-var callback.
+ ubman.run_command('setenv loadaddr 0')
ubman.run_command(f'host load hostfs - $loadaddr {fit}')
assert '2' in ubman.run_command('source')
@@ -34,3 +40,7 @@ def test_source(ubman):
ubman.run_command('fdt rm /images default')
assert 'Fail' in ubman.run_command('source || echo Fail')
assert 'Fail' in ubman.run_command('source \\# || echo Fail')
+
+ # Restore the control FDT and clean up
+ ubman.run_command('fdt addr $fdtcontroladdr')
+ ubman.run_command('setenv loadaddr')