Make pick_default_qemu_bin() generic to find qemu-system or
qemu-user binaries.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
tests/acceptance/avocado_qemu/__init__.py | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/tests/acceptance/avocado_qemu/__init__.py b/tests/acceptance/avocado_qemu/__init__.py
index 4f814047176..08b3fa1124f 100644
--- a/tests/acceptance/avocado_qemu/__init__.py
+++ b/tests/acceptance/avocado_qemu/__init__.py
@@ -48,7 +48,7 @@ def is_readable_executable_file(path):
return os.path.isfile(path) and os.access(path, os.R_OK | os.X_OK)
-def pick_default_qemu_bin(arch=None):
+def pick_default_qemu_bin(bin_fmt, arch=None):
"""
Picks the path of a QEMU binary, starting either in the current working
directory or in the source tree root directory.
@@ -67,7 +67,7 @@ def pick_default_qemu_bin(arch=None):
# qemu binary path does not match arch for powerpc, handle it
if 'ppc64le' in arch:
arch = 'ppc64'
- qemu_bin_relative_path = "./qemu-system-%s" % arch
+ qemu_bin_relative_path = os.path.join(".", bin_fmt % arch)
if is_readable_executable_file(qemu_bin_relative_path):
return qemu_bin_relative_path
@@ -187,14 +187,14 @@ def require_accelerator(self, accelerator):
self.cancel("%s accelerator does not seem to be "
"available" % accelerator)
- def setUp(self):
+ def setUp(self, bin_fmt):
self.arch = self.params.get('arch',
default=self._get_unique_tag_val('arch'))
self.machine = self.params.get('machine',
default=self._get_unique_tag_val('machine'))
- default_qemu_bin = pick_default_qemu_bin(arch=self.arch)
+ default_qemu_bin = pick_default_qemu_bin(bin_fmt, arch=self.arch)
self.qemu_bin = self.params.get('qemu_bin',
default=default_qemu_bin)
if self.qemu_bin is None:
@@ -217,7 +217,7 @@ def fetch_asset(self, name,
class Test(QemuBaseTest):
def setUp(self):
self._vms = {}
- super(Test, self).setUp()
+ super(Test, self).setUp("qemu-system-%s")
def _new_vm(self, *args):
self._sd = tempfile.TemporaryDirectory(prefix="avo_qemu_sock_")
--
2.26.2
Hi,
On 3/15/21 8:08 PM, Philippe Mathieu-Daudé wrote:
> Make pick_default_qemu_bin() generic to find qemu-system or
> qemu-user binaries.
>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> tests/acceptance/avocado_qemu/__init__.py | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/tests/acceptance/avocado_qemu/__init__.py b/tests/acceptance/avocado_qemu/__init__.py
> index 4f814047176..08b3fa1124f 100644
> --- a/tests/acceptance/avocado_qemu/__init__.py
> +++ b/tests/acceptance/avocado_qemu/__init__.py
> @@ -48,7 +48,7 @@ def is_readable_executable_file(path):
> return os.path.isfile(path) and os.access(path, os.R_OK | os.X_OK)
>
>
> -def pick_default_qemu_bin(arch=None):
> +def pick_default_qemu_bin(bin_fmt, arch=None):
I suggest that bin_fmt defaults to "qemu-system-%" (or "qemu-system-",
see below) so that you don't need to change the existing callers.
> """
> Picks the path of a QEMU binary, starting either in the current working
> directory or in the source tree root directory.
> @@ -67,7 +67,7 @@ def pick_default_qemu_bin(arch=None):
> # qemu binary path does not match arch for powerpc, handle it
> if 'ppc64le' in arch:
> arch = 'ppc64'
> - qemu_bin_relative_path = "./qemu-system-%s" % arch
> + qemu_bin_relative_path = os.path.join(".", bin_fmt % arch)
Above construct fails (unless I missed something):
>>> bin_fmt="qemu-system-%"
>>> arch="aarch64"
>>> qemu_bin_relative_path = os.path.join(".", bin_fmt % arch)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: incomplete format
Instead it could be "bin_prefix" where the value is either
"qemu-system-" or "qemu-", then "arch" is just appended.
> if is_readable_executable_file(qemu_bin_relative_path):
> return qemu_bin_relative_path
>
> @@ -187,14 +187,14 @@ def require_accelerator(self, accelerator):
> self.cancel("%s accelerator does not seem to be "
> "available" % accelerator)
>
> - def setUp(self):
> + def setUp(self, bin_fmt):
> self.arch = self.params.get('arch',
> default=self._get_unique_tag_val('arch'))
>
> self.machine = self.params.get('machine',
> default=self._get_unique_tag_val('machine'))
>
> - default_qemu_bin = pick_default_qemu_bin(arch=self.arch)
> + default_qemu_bin = pick_default_qemu_bin(bin_fmt, arch=self.arch)
> self.qemu_bin = self.params.get('qemu_bin',
> default=default_qemu_bin)
> if self.qemu_bin is None:
> @@ -217,7 +217,7 @@ def fetch_asset(self, name,
> class Test(QemuBaseTest):
> def setUp(self):
> self._vms = {}
> - super(Test, self).setUp()
> + super(Test, self).setUp("qemu-system-%s")
>
> def _new_vm(self, *args):
> self._sd = tempfile.TemporaryDirectory(prefix="avo_qemu_sock_")
© 2016 - 2026 Red Hat, Inc.