test/py: Provide a way to check that a command fails

Sometimes we want to run a command and check that it fails. Add a function
to handle this. It can check the return code and also make sure that the
output contains a given error message.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2016-07-03 09:40:41 -06:00 committed by Tom Rini
parent 8b304a37df
commit 9e17b0345a

View file

@ -185,6 +185,28 @@ def cmd(u_boot_console, cmd_str):
"""
return run_and_log(u_boot_console, cmd_str.split())
def run_and_log_expect_exception(u_boot_console, cmd, retcode, msg):
"""Run a command which is expected to fail.
This runs a command and checks that it fails with the expected return code
and exception method. If not, an exception is raised.
Args:
u_boot_console: A console connection to U-Boot.
cmd: The command to run, as an array of argv[].
retcode: Expected non-zero return code from the command.
msg: String which should be contained within the command's output.
"""
try:
runner = u_boot_console.log.get_runner(cmd[0], sys.stdout)
runner.run(cmd)
except Exception as e:
assert(msg in runner.output)
else:
raise Exception('Expected exception, but not raised')
finally:
runner.close()
ram_base = None
def find_ram_base(u_boot_console):
"""Find the running U-Boot's RAM location.