On Thu, Apr 08, 2021 at 04:52:36PM -0300, Wainer dos Santos Moschetta wrote:
> The set_vm_arg method is added to avocado_qemu.Test class on this
> change. Use that method to set (or replace) an argument to the list of
> arguments given to the QEMU binary.
>
> Suggested-by: Cleber Rosa <crosa@redhat.com>
> Signed-off-by: Wainer dos Santos Moschetta <wainersm@redhat.com>
> ---
> tests/acceptance/avocado_qemu/__init__.py | 16 ++++++++++++++++
> 1 file changed, 16 insertions(+)
>
> diff --git a/tests/acceptance/avocado_qemu/__init__.py b/tests/acceptance/avocado_qemu/__init__.py
> index 7f8e703757..5314ce70eb 100644
> --- a/tests/acceptance/avocado_qemu/__init__.py
> +++ b/tests/acceptance/avocado_qemu/__init__.py
> @@ -240,6 +240,22 @@ def get_vm(self, *args, name=None):
> self._vms[name].set_machine(self.machine)
> return self._vms[name]
>
> + def set_vm_arg(self, arg, value):
> + """
> + Set an argument to list of extra arguments to be given to the QEMU
> + binary. If the argument already exists then its value is replaced.
> +
> + :param arg: the QEMU argument, such as "-cpu" in "-cpu host"
> + :type arg: str
> + :param value: the argument value, such as "host" in "-cpu host"
> + :type value: str
> + """
> + if arg not in self.vm.args:
> + self.vm.args.extend([arg, value])
> + else:
> + idx = self.vm.args.index(arg)
> + self.vm.args[idx + 1] = value
> +
This assumes that the arg will have a value, but that's not always the
case. And, even if you were to pass an empty string, the logic would
overwrite the next (unrelated) arg.
Regards,
- Cleber.