tests/avocado: Make pick_default_qemu_bin() more generic

Make pick_default_qemu_bin() generic to find qemu-system or
qemu-user binaries.

Reviewed-by: Willian Rampazzo <willianr@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20211105143416.148332-3-f4bug@amsat.org>
This commit is contained in:
Philippe Mathieu-Daudé 2021-02-14 18:59:09 +01:00 committed by Philippe Mathieu-Daudé
parent 3982feb476
commit 9112d4fd49

View file

@ -45,7 +45,7 @@ def is_readable_executable_file(path):
return os.path.isfile(path) and os.access(path, os.R_OK | os.X_OK) 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_prefix='qemu-system-', arch=None):
""" """
Picks the path of a QEMU binary, starting either in the current working Picks the path of a QEMU binary, starting either in the current working
directory or in the source tree root directory. directory or in the source tree root directory.
@ -64,7 +64,7 @@ def pick_default_qemu_bin(arch=None):
# qemu binary path does not match arch for powerpc, handle it # qemu binary path does not match arch for powerpc, handle it
if 'ppc64le' in arch: if 'ppc64le' in arch:
arch = 'ppc64' arch = 'ppc64'
qemu_bin_relative_path = "./qemu-system-%s" % arch qemu_bin_relative_path = os.path.join(".", bin_prefix + arch)
if is_readable_executable_file(qemu_bin_relative_path): if is_readable_executable_file(qemu_bin_relative_path):
return qemu_bin_relative_path return qemu_bin_relative_path
@ -179,14 +179,14 @@ class QemuBaseTest(avocado.Test):
return vals.pop() return vals.pop()
return None return None
def setUp(self): def setUp(self, bin_prefix):
self.arch = self.params.get('arch', self.arch = self.params.get('arch',
default=self._get_unique_tag_val('arch')) default=self._get_unique_tag_val('arch'))
self.cpu = self.params.get('cpu', self.cpu = self.params.get('cpu',
default=self._get_unique_tag_val('cpu')) default=self._get_unique_tag_val('cpu'))
default_qemu_bin = pick_default_qemu_bin(arch=self.arch) default_qemu_bin = pick_default_qemu_bin(bin_prefix, arch=self.arch)
self.qemu_bin = self.params.get('qemu_bin', self.qemu_bin = self.params.get('qemu_bin',
default=default_qemu_bin) default=default_qemu_bin)
if self.qemu_bin is None: if self.qemu_bin is None:
@ -214,7 +214,7 @@ class Test(QemuBaseTest):
def setUp(self): def setUp(self):
self._vms = {} self._vms = {}
super().setUp() super().setUp('qemu-system-')
self.machine = self.params.get('machine', self.machine = self.params.get('machine',
default=self._get_unique_tag_val('machine')) default=self._get_unique_tag_val('machine'))