[U-Boot] [PATCH 08/14] test/py: Add an option to execute a string containing a command

Stephen Warren
2016-07-07T17:07:34Z

On 07/03/2016 09:40 AM, Simon Glass wrote:
> It is sometimes inconvenient to convert a string into a list for execution
> with run_and_log(). Provide a helper function to do this.

> diff --git a/test/py/u_boot_utils.py b/test/py/u_boot_utils.py

> +def cmd(u_boot_console, cmd_str):
> + """Run a single command string and log its output.
> +
> + Args:
> + u_boot_console: A console connection to U-Boot.
> + cmd: The command to run, as a string.
> +
> + Returns:
> + The output as a string.
> + """

Thinking about this more: I believe the Pythonic way to do this would be
to extend the existing run_and_log() to support the cmd parameter being
either an array, or a string; I think something like just adding the
following at the start of run_and_log():

if isinstance(cmd, str):
cmd = str.split()

This would also allow other higher-order functions like your later
run_command_list() to take either a list of argv[] or a list of strings
(or even a mixture), without having to code multiple versions of the
higher level functions for the different cases.