diff mbox series

[v2,2/7] avocado_qemu: Introduce pick_qemu_util to pick qemu utility binaries

Message ID 3bf59de49c6d97d457e9955efe401335cf28930a.1591456338.git.lukasstraub2@web.de (mailing list archive)
State New, archived
Headers show
Series colo: Introduce resource agent and test suite/CI | expand

Commit Message

Lukas Straub June 6, 2020, 7:17 p.m. UTC
This introduces a generic function to pick qemu utility binaries
from the build dir, system or via test parameter.

Signed-off-by: Lukas Straub <lukasstraub2@web.de>
---
 tests/acceptance/avocado_qemu/__init__.py | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

--
2.20.1
diff mbox series

Patch

diff --git a/tests/acceptance/avocado_qemu/__init__.py b/tests/acceptance/avocado_qemu/__init__.py
index 59e7b4f763..d0529dca6c 100644
--- a/tests/acceptance/avocado_qemu/__init__.py
+++ b/tests/acceptance/avocado_qemu/__init__.py
@@ -15,6 +15,7 @@  import uuid
 import tempfile

 import avocado
+from avocado.utils.path import find_command

 #: The QEMU build root directory.  It may also be the source directory
 #: if building from the source dir, but it's safer to use BUILD_DIR for
@@ -144,6 +145,20 @@  def exec_command_and_wait_for_pattern(test, command,
     _console_interaction(test, success_message, failure_message, command + '\r')

 class Test(avocado.Test):
+    def pick_qemu_util(self, util):
+        default = os.path.join(BUILD_DIR, util)
+        if not os.path.exists(default):
+            default = find_command(default, False)
+            if not default:
+                default = None
+
+        ret = self.params.get(util, default=default)
+
+        if ret is None:
+            self.cancel("Could not find \"%s\"" % util)
+
+        return ret
+
     def _get_unique_tag_val(self, tag_name):
         """
         Gets a tag value, if unique for a key