From nobody Mon Feb 9 22:19:57 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.128.42 as permitted sender) client-ip=209.85.128.42; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-f42.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.42 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1635842561; cv=none; d=zohomail.com; s=zohoarc; b=n0dLxyUcr/UDjJ3FW/9tUi0Yho82eihi95+48nIzTgCEg7QGjab28K5bT4JhrhvmBh8G2QPz/XfwJl2THkg178k8/ztjeMXMWakpN0H4CZEktmeCcPKj/O7fWHet5bWZIXQlRnNhEdmr9r+NHeYT3iItkpbDyrneMvpqc9u6XRk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1635842561; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Im+Cf99LFyjhzp+sO6pePzS2IqjUlJiZTNDKG3hFU1M=; b=FAK8mmNwCvxB8Eu/XjGXv6zU1zrvA7sUJQQbmAF2pwyQl8W1RHKkHgvGU+5VEAgbTocty3v+/r8fGZYOhY07NlpBYy8gCzoQJOGHGWQ7N60T9PHM8f0bABJQDLyIbGrjH220dA8E7qv/j7tII7N/qiWhHAY9tnWiD20BVZwWiJA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.42 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) by mx.zohomail.com with SMTPS id 163584256118447.90954614696102; Tue, 2 Nov 2021 01:42:41 -0700 (PDT) Received: by mail-wm1-f42.google.com with SMTP id c71-20020a1c9a4a000000b0032cdcc8cbafso1481547wme.3 for ; Tue, 02 Nov 2021 01:42:40 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.. (62.red-83-57-168.dynamicip.rima-tde.net. [83.57.168.62]) by smtp.gmail.com with ESMTPSA id u15sm1932391wmq.12.2021.11.02.01.42.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Nov 2021 01:42:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Im+Cf99LFyjhzp+sO6pePzS2IqjUlJiZTNDKG3hFU1M=; b=Soycesse4dQU9Tlkek37qRL7lCYw9L/at5sFFSlTx96vDIfktGh+SLQmAlh4yN3Ry0 MUPTK+HcDNUelOFXfMS9oO2oLBhyl4ODwmE6CDGSkSZH5MLru9GbuMJOWfgvKBSkEpcR ELwBsNZeChQFmfUADzuRSCJQG3s1w8GSbM/xM6s5mYxVrcqF/3vNaUk6e20cBDsumjLY +DoeJHuk3RUoOJypVBxPxwebcwooWYUjYj42Wh1EIdMbajsTBvQHOYezuchrmuVK8VuV /x3yW/10sZPpHeRpdFMM+texjlIi36tInyA7mGz/XQdMdsKvKcSiKqA8O1vQoND8Zz8o wqNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=Im+Cf99LFyjhzp+sO6pePzS2IqjUlJiZTNDKG3hFU1M=; b=RLSTxOKJp/GqROquuD10tz+BjqeJUVE7nlpMNIS/FgWgdZlKgFas8GhHa2tCGXt6va h8+DKa8jLRqbqhSQFFl9aRvjPb6VqnKF/W2NB32mvcYj55m1MxBTY4x/ZcaVdxbrgBbW lufUMrGHhKBz0v14n2wLHURueGwjclROjdBBZBvsGGmlvrsC6nSIZwhbjfgbmyzIksSu m/OcLBIbQm8JlZdQiJ9zmkMYoTzi8RSkhFhryvNA+/HiEAYW7iuRYtUr3irdBrRyptTs D6SPa4qsJOSirjLEl1JKYT5B1smsSGiduAFJyx2RhdEWtMB8GA7f3zCLoji+osvhojRR DHgQ== X-Gm-Message-State: AOAM530UwI5e1sixJIIfnQPeI31Gw7ggD4+uW/V/XLemMHCaJJKYNmsd /LeooQvn3JVOhc+LBy6bqfw= X-Google-Smtp-Source: ABdhPJyuNll1Lk840v5vN/twTkiFye5FBM4Yye2mLyLdwyYNFvrMH9JPXgArysXapraLV0zBJymKFg== X-Received: by 2002:a1c:ac86:: with SMTP id v128mr5216223wme.3.1635842559438; Tue, 02 Nov 2021 01:42:39 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Willian Rampazzo , Warner Losh , Cleber Rosa , Wainer dos Santos Moschetta , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v5 1/6] tests/acceptance: Extract QemuBaseTest from Test Date: Tue, 2 Nov 2021 09:42:27 +0100 Message-Id: <20211102084232.2965062-2-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211102084232.2965062-1-f4bug@amsat.org> References: <20211102084232.2965062-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1635842562123100001 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. Reviewed-by: Willian Rampazzo Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- v5: Use PEP3135 (Willian) --- 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/a= vocado_qemu/__init__.py index 1841053e2c1..1ed381f5037 100644 --- a/tests/acceptance/avocado_qemu/__init__.py +++ b/tests/acceptance/avocado_qemu/__init__.py @@ -169,7 +169,7 @@ def exec_command_and_wait_for_pattern(test, command, """ _console_interaction(test, success_message, failure_message, command += '\r') =20 -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 @@ -179,6 +179,46 @@ def _get_unique_tag_val(self, tag_name): return vals.pop() return None =20 + def setUp(self): + self.arch =3D self.params.get('arch', + default=3Dself._get_unique_tag_val('ar= ch')) + + self.cpu =3D self.params.get('cpu', + default=3Dself._get_unique_tag_val('cpu= ')) + + default_qemu_bin =3D pick_default_qemu_bin(arch=3Dself.arch) + self.qemu_bin =3D self.params.get('qemu_bin', + default=3Ddefault_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=3DNone, algorithm=3DNone, + locations=3DNone, expire=3DNone, + find_only=3DFalse, cancel_on_missing=3DTrue): + return super().fetch_asset(name, + asset_hash=3Dasset_hash, + algorithm=3Dalgorithm, + locations=3Dlocations, + expire=3Dexpire, + find_only=3Dfind_only, + cancel_on_missing=3Dcancel_on_missing) + + +class Test(QemuBaseTest): + """Facilitates system emulation tests. + + TODO: Rename this class as `QemuSystemTest`. + """ + + def setUp(self): + self._vms =3D {} + + super().setUp() + + self.machine =3D self.params.get('machine', + default=3Dself._get_unique_tag_val(= 'machine')) + def require_accelerator(self, accelerator): """ Requires an accelerator to be available for the test to continue @@ -201,24 +241,6 @@ def require_accelerator(self, accelerator): self.cancel("%s accelerator does not seem to be " "available" % accelerator) =20 - def setUp(self): - self._vms =3D {} - - self.arch =3D self.params.get('arch', - default=3Dself._get_unique_tag_val('ar= ch')) - - self.cpu =3D self.params.get('cpu', - default=3Dself._get_unique_tag_val('cpu= ')) - - self.machine =3D self.params.get('machine', - default=3Dself._get_unique_tag_val(= 'machine')) - - default_qemu_bin =3D pick_default_qemu_bin(arch=3Dself.arch) - self.qemu_bin =3D self.params.get('qemu_bin', - default=3Ddefault_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 =3D tempfile.TemporaryDirectory(prefix=3D"avo_qemu_sock_") vm =3D QEMUMachine(self.qemu_bin, base_temp_dir=3Dself.workdir, @@ -272,18 +294,6 @@ def tearDown(self): self._sd =3D None super().tearDown() =20 - def fetch_asset(self, name, - asset_hash=3DNone, algorithm=3DNone, - locations=3DNone, expire=3DNone, - find_only=3DFalse, cancel_on_missing=3DTrue): - return super().fetch_asset(name, - asset_hash=3Dasset_hash, - algorithm=3Dalgorithm, - locations=3Dlocations, - expire=3Dexpire, - find_only=3Dfind_only, - cancel_on_missing=3Dcancel_on_missing) - =20 class LinuxSSHMixIn: """Contains utility methods for interacting with a guest via SSH.""" --=20 2.31.1