--- /dev/null
+# SPDX-License-Identifier: GPL-2.0+
+# Copyright (C) 2022 Sean Anderson <sean.anderson@seco.com>
+
+import os
+import pytest
+import u_boot_utils as util
+
+@pytest.mark.boardspec('sandbox')
+@pytest.mark.buildconfigspec('cmd_echo')
+@pytest.mark.buildconfigspec('cmd_source')
+@pytest.mark.buildconfigspec('fit')
+def test_source(u_boot_console):
+ # Compile our test script image
+ cons = u_boot_console
+ mkimage = os.path.join(cons.config.build_dir, 'tools/mkimage')
+ its = os.path.join(cons.config.source_dir, 'test/py/tests/source.its')
+ fit = os.path.join(cons.config.build_dir, 'source.itb')
+ util.run_and_log(cons, (mkimage, '-f', its, fit))
+ cons.run_command(f'host load hostfs - $loadaddr {fit}')
+
+ assert '1' in cons.run_command('source')
+ assert '1' in cons.run_command('source :script-1')
+ assert '2' in cons.run_command('source :script-2')
+ assert 'Fail' in cons.run_command('source :not-a-script || echo Fail')
+
+ cons.run_command('fdt addr $loadaddr')
+ cons.run_command('fdt rm /images default')
+ assert 'Fail' in cons.run_command('source || echo Fail')