From: "Philippe Mathieu-Daudé" <f4bug@amsat.org>
To: qemu-devel@nongnu.org
Cc: "Laurent Vivier" <laurent@vivier.eu>,
"Wainer dos Santos Moschetta" <wainersm@redhat.com>,
"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
"Willian Rampazzo" <willianr@redhat.com>,
qemu-arm@nongnu.org, "Warner Losh" <imp@bsdimp.com>
Subject: [PATCH v4 1/6] tests/acceptance: Extract QemuBaseTest from Test
Date: Mon, 27 Sep 2021 18:31:11 +0200 [thread overview]
Message-ID: <20210927163116.1998349-2-f4bug@amsat.org> (raw)
In-Reply-To: <20210927163116.1998349-1-f4bug@amsat.org>
The Avocado Test::fetch_asset() is handy to download artifacts
before running tests. The current class is named Test but only
tests system emulation. As we want to test user emulation,
refactor the common code as QemuBaseTest.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
tests/acceptance/avocado_qemu/__init__.py | 72 +++++++++++++----------
1 file changed, 41 insertions(+), 31 deletions(-)
diff --git a/tests/acceptance/avocado_qemu/__init__.py b/tests/acceptance/avocado_qemu/__init__.py
index 2c4fef3e149..8fcbed74849 100644
--- a/tests/acceptance/avocado_qemu/__init__.py
+++ b/tests/acceptance/avocado_qemu/__init__.py
@@ -175,7 +175,7 @@ def exec_command_and_wait_for_pattern(test, command,
"""
_console_interaction(test, success_message, failure_message, command + '\r')
-class Test(avocado.Test):
+class QemuBaseTest(avocado.Test):
def _get_unique_tag_val(self, tag_name):
"""
Gets a tag value, if unique for a key
@@ -185,6 +185,46 @@ def _get_unique_tag_val(self, tag_name):
return vals.pop()
return None
+ def setUp(self):
+ self.arch = self.params.get('arch',
+ default=self._get_unique_tag_val('arch'))
+
+ self.cpu = self.params.get('cpu',
+ default=self._get_unique_tag_val('cpu'))
+
+ default_qemu_bin = pick_default_qemu_bin(arch=self.arch)
+ self.qemu_bin = self.params.get('qemu_bin',
+ default=default_qemu_bin)
+ if self.qemu_bin is None:
+ self.cancel("No QEMU binary defined or found in the build tree")
+
+ def fetch_asset(self, name,
+ asset_hash=None, algorithm=None,
+ locations=None, expire=None,
+ find_only=False, cancel_on_missing=True):
+ return super(QemuBaseTest, self).fetch_asset(name,
+ asset_hash=asset_hash,
+ algorithm=algorithm,
+ locations=locations,
+ expire=expire,
+ find_only=find_only,
+ cancel_on_missing=cancel_on_missing)
+
+
+class Test(QemuBaseTest):
+ """Facilitates system emulation tests.
+
+ TODO: Rename this class as `QemuSystemTest`.
+ """
+
+ def setUp(self):
+ self._vms = {}
+
+ super(Test, self).setUp()
+
+ self.machine = self.params.get('machine',
+ default=self._get_unique_tag_val('machine'))
+
def require_accelerator(self, accelerator):
"""
Requires an accelerator to be available for the test to continue
@@ -207,24 +247,6 @@ def require_accelerator(self, accelerator):
self.cancel("%s accelerator does not seem to be "
"available" % accelerator)
- def setUp(self):
- self._vms = {}
-
- self.arch = self.params.get('arch',
- default=self._get_unique_tag_val('arch'))
-
- self.cpu = self.params.get('cpu',
- default=self._get_unique_tag_val('cpu'))
-
- self.machine = self.params.get('machine',
- default=self._get_unique_tag_val('machine'))
-
- default_qemu_bin = pick_default_qemu_bin(arch=self.arch)
- self.qemu_bin = self.params.get('qemu_bin',
- default=default_qemu_bin)
- if self.qemu_bin is None:
- self.cancel("No QEMU binary defined or found in the build tree")
-
def _new_vm(self, name, *args):
self._sd = tempfile.TemporaryDirectory(prefix="avo_qemu_sock_")
vm = QEMUMachine(self.qemu_bin, base_temp_dir=self.workdir,
@@ -277,18 +299,6 @@ def tearDown(self):
vm.shutdown()
self._sd = None
- def fetch_asset(self, name,
- asset_hash=None, algorithm=None,
- locations=None, expire=None,
- find_only=False, cancel_on_missing=True):
- return super(Test, self).fetch_asset(name,
- asset_hash=asset_hash,
- algorithm=algorithm,
- locations=locations,
- expire=expire,
- find_only=find_only,
- cancel_on_missing=cancel_on_missing)
-
class LinuxSSHMixIn:
"""Contains utility methods for interacting with a guest via SSH."""
--
2.31.1
next prev parent reply other threads:[~2021-09-27 16:34 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-27 16:31 [PATCH v4 0/6] tests/acceptance: Add bFLT loader linux-user test Philippe Mathieu-Daudé
2021-09-27 16:31 ` Philippe Mathieu-Daudé [this message]
2021-11-01 18:01 ` [PATCH v4 1/6] tests/acceptance: Extract QemuBaseTest from Test Willian Rampazzo
2021-11-01 22:41 ` Philippe Mathieu-Daudé
2021-09-27 16:31 ` [PATCH v4 2/6] tests/acceptance: Make pick_default_qemu_bin() more generic Philippe Mathieu-Daudé
2021-11-01 18:52 ` Willian Rampazzo
2021-09-27 16:31 ` [PATCH v4 3/6] tests/acceptance: Introduce QemuUserTest base class Philippe Mathieu-Daudé
2021-11-01 18:59 ` Willian Rampazzo
2021-09-27 16:31 ` [PATCH v4 4/6] tests/acceptance: Share useful helpers from virtiofs_submounts test Philippe Mathieu-Daudé
2021-11-01 19:07 ` Willian Rampazzo
2021-09-27 16:31 ` [PATCH v4 5/6] tests/acceptance: Add bFLT loader linux-user test Philippe Mathieu-Daudé
2021-11-01 17:51 ` Willian Rampazzo
2021-11-01 22:41 ` Philippe Mathieu-Daudé
2021-09-27 16:31 ` [PATCH v4 6/6] tests/acceptance: Rename avocado_qemu.Test -> QemuSystemTest Philippe Mathieu-Daudé
2021-11-01 19:11 ` Willian Rampazzo
2021-11-01 22:42 ` Philippe Mathieu-Daudé
2021-10-25 13:44 ` [PATCH v4 0/6] tests/acceptance: Add bFLT loader linux-user test Philippe Mathieu-Daudé
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210927163116.1998349-2-f4bug@amsat.org \
--to=f4bug@amsat.org \
--cc=imp@bsdimp.com \
--cc=laurent@vivier.eu \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=wainersm@redhat.com \
--cc=willianr@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).