From nobody Sat May 18 23:44:16 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.128.43 as permitted sender) client-ip=209.85.128.43; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-f43.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.43 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615849727; cv=none; d=zohomail.com; s=zohoarc; b=gmawC2/BN4iF2TE153d93Mr4w26zHvqqRCGDviHQUuPs5RKnMohh+tJmH3pABxlp98Ywm3wVQHdd18HE47ueEtXBCxkQtyHuwqoxTIZ+YYdiGan5VaG+C1yGxoB3Jl6YBKPuI6CIU6LW2GE1i0RsiTKS1ltsfc3hjrQB0/0zBXA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615849727; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=A7YF3nY7RWwiblpeqYeH6Gr8kBH483IkbOyS8dt/OFw=; b=Q2+HH02BKpir38oLf+83URLbVPqunpb7vvXaJOOGYn9CoZvWxl3zMzzynSjhdqI9vXG0n5XRdtMAxzFM6/+vz0sBksFdVmLGX6b4c0Ha14U8EDy75GRj/8t5ata/U3gD0/rtUArovn1GPhf5vog5sCTbzbFpumIpNVImcJlCcnQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.43 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) by mx.zohomail.com with SMTPS id 1615849727666803.3841249627257; Mon, 15 Mar 2021 16:08:47 -0700 (PDT) Received: by mail-wm1-f43.google.com with SMTP id b2-20020a7bc2420000b029010be1081172so400711wmj.1 for ; Mon, 15 Mar 2021 16:08:47 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.redhat.com (17.red-88-21-201.staticip.rima-tde.net. [88.21.201.17]) by smtp.gmail.com with ESMTPSA id p12sm19637868wrx.28.2021.03.15.16.08.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Mar 2021 16:08:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=A7YF3nY7RWwiblpeqYeH6Gr8kBH483IkbOyS8dt/OFw=; b=Y5Xslj8FigNfxfK2NtY+/L1/8mIgEzdkd7LzBgQDoxK8U5zRFgwUG2hhXbrTSlE++n tqIU+FD+VC/GMzNFTNj0lT/nfl61WDHJv1Q9mU5hC4j+K0q/3RGhYXRhbluLU8fxY6Fb fZ46/b91jG0tA2OAeQ3vPGtj2o6ZgZjDhXGacxlajeDTKz2S0R/uUbDsndYe7ygj9ZC6 P2/gkR5TeGQ3p87w1mt/TDlX22pU9kwpw2iihRp1pkBmCv+Dj/CfjeOJeiQD9eKyiQNl 5JjmVi1ZMmZ8Rq//pb4hff9IY/LAexDTxEmq4HnyfcYBZvTHruSWTbJ0mDcvSJY8JJuI j4Ag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=A7YF3nY7RWwiblpeqYeH6Gr8kBH483IkbOyS8dt/OFw=; b=KvmZ8VZ4GDuzxuBrumiBWUMgxspvGKxTdgBWnbUxOT3BL8qjq28+JEsg2Vi6E5MkxC mEEm48YBtY3d4ClmWLuDIbaS3NCrTzowmy8UodZEIzgb0EHgM4jhOpKXFSw5/Li40hjo GBpUDYR4xAnW6q2lFlrDjhyKPsndxrRL9maHhW5M21LTKmlCKjuL3iJt2r7LWBrj42Sa TNK88XuNhwT4J+K0IoI8I5yDptvMjxGzFYPGNNTc1QF8y9tK8aF4vR8GxKYo5+mQxdBQ wn6lvMqZImyUR9KP/Ic52PXCZNJpGOqZiuSgZctwJber3wuuxMwntxSnXhWYLHvPO+1Q Hsfg== X-Gm-Message-State: AOAM53284f4oDdYIF+BVzN7y8LKEGjD4hcwNQtCMQOWDAeObyoSLhJbQ Ka1Yo5DgVbSH2t1hOYY+RBk= X-Google-Smtp-Source: ABdhPJwoHiSGUBNp4mSuUIeBm6B9sh/p+TPGK0n8FVQz33We6hzauGMN3vJ1k1qCDG4FlcFooaQKjg== X-Received: by 2002:a05:600c:198c:: with SMTP id t12mr1706530wmq.183.1615849725878; Mon, 15 Mar 2021 16:08:45 -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: Cleber Rosa , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Wainer dos Santos Moschetta , Willian Rampazzo , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v3 1/5] tests/acceptance: Extract QemuBaseTest from Test Date: Tue, 16 Mar 2021 00:08:34 +0100 Message-Id: <20210315230838.2973103-2-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210315230838.2973103-1-f4bug@amsat.org> References: <20210315230838.2973103-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) 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=C3=A9 --- tests/acceptance/avocado_qemu/__init__.py | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/tests/acceptance/avocado_qemu/__init__.py b/tests/acceptance/a= vocado_qemu/__init__.py index df167b142cc..4f814047176 100644 --- a/tests/acceptance/avocado_qemu/__init__.py +++ b/tests/acceptance/avocado_qemu/__init__.py @@ -155,7 +155,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 @@ -188,8 +188,6 @@ def require_accelerator(self, accelerator): "available" % accelerator) =20 def setUp(self): - self._vms =3D {} - self.arch =3D self.params.get('arch', default=3Dself._get_unique_tag_val('ar= ch')) =20 @@ -202,6 +200,25 @@ def setUp(self): if self.qemu_bin is None: self.cancel("No QEMU binary defined or found in the build tree= ") =20 + + def fetch_asset(self, name, + asset_hash=3DNone, algorithm=3DNone, + locations=3DNone, expire=3DNone, + find_only=3DFalse, cancel_on_missing=3DTrue): + return super(QemuBaseTest, self).fetch_asset(name, + asset_hash=3Dasset_hash, + algorithm=3Dalgorithm, + locations=3Dlocations, + expire=3Dexpire, + find_only=3Dfind_only, + cancel_on_missing=3Dcancel_on_missing) + +# a.k.a. QemuSystemTest for system emulation... +class Test(QemuBaseTest): + def setUp(self): + self._vms =3D {} + super(Test, self).setUp() + def _new_vm(self, *args): self._sd =3D tempfile.TemporaryDirectory(prefix=3D"avo_qemu_sock_") vm =3D QEMUMachine(self.qemu_bin, sock_dir=3Dself._sd.name) --=20 2.26.2 From nobody Sat May 18 23:44:16 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.128.49 as permitted sender) client-ip=209.85.128.49; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-f49.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.49 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615849732; cv=none; d=zohomail.com; s=zohoarc; b=Tn6kxQAppRqbhdUCb6Bfdibh1f2AxTj6Hk51HVON4Xop038PZz9heJt1ccuUQA4pYsQtFeKW6L6DTNC5mJ2HnKpLoVIuX+uKzjXujqyu6lm1iXrmg5LVx4OLI0/PCX3w07z9iYr7BhtQK+vwSqHz0fh63CtCSWUrq4qiTOJEhcI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615849732; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=4tUMWakslWwBjVs/0HfBBNZUO07+acnd7bqh9wtAzCw=; b=Ty9+CtPav0oir4ZmmCrhqFsxCxWYYCiM1gnz/DkiyuW+zDOGMgyOn77Tqv2gVhMt6Cz15Ek4SuyXTVoIxRJ8JBr8rJ+XPVy812S6BObBCt+1/hbJKlQx/s+6c0F8elOEaxdpDSg+vG4e9nAHUei1Sd0b5HEAQc4QFxmLNUQtxEo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.49 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) by mx.zohomail.com with SMTPS id 1615849732825475.8321961054713; Mon, 15 Mar 2021 16:08:52 -0700 (PDT) Received: by mail-wm1-f49.google.com with SMTP id r10-20020a05600c35cab029010c946c95easo392794wmq.4 for ; Mon, 15 Mar 2021 16:08:52 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.redhat.com (17.red-88-21-201.staticip.rima-tde.net. [88.21.201.17]) by smtp.gmail.com with ESMTPSA id r11sm20380080wrm.26.2021.03.15.16.08.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Mar 2021 16:08:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=4tUMWakslWwBjVs/0HfBBNZUO07+acnd7bqh9wtAzCw=; b=Pfp4mXSB6BRs6AyUQcrqNueIcckZSnAqKC6YhbHReVFjWbLSlYTTgLFw3UqpVZqofJ 9fQwxPAfZv2vp73qHoqQwx1FfWB6Ph1m05Hd/LE4hNzFpWmUTViP1m4eo0OTNPZUmiNC FQ9AZde3MVcT8z1Yc+KrGDawf7OnLF640Q9VcKIm2y8G53jpQpAqG4q81ZhtyEl0odDO wpABsIoRO6plAQ9ryRWMgszHPhv7IvfXzE5eO5VauiMf5BsS4FTZN5TCC1eF/Lex0qfq rjTQrc9AZ0QHUO3XjxFyWlTPyTIipSlZccZbXbwHr0NVYDeQONlj6/DfF2xyQN8P3Vii Cmng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=4tUMWakslWwBjVs/0HfBBNZUO07+acnd7bqh9wtAzCw=; b=sph2uTY3Wgvpxqm2S4VlfKZm7kA0P2GOQP8Ej3Qhd33IriqypvU+KH/0AGKClKt4Ft OQPZLu7/mynHk7YwdWQgigsQ66M7rvJ43tFtfYQjBMSiOftxiW6bEoIxbxdlr56dq4bA FhGYxzkQwRQxq+Xjb0DTqsQCAXnVLKmltdaU3/2ARhvhSe05iuDM4qKjM/EB8heX6pJL 3b3OkXgx2F8Cjwj5Cvb2YrntkPIHUaAZ1L+rHPIQjVmcNdSG/QZsCcG6mHvOhSxO3sjr 3JLXxfjmT+azVnOb/d9nuCKr45StQhCZgbwPDdG1xub5ouPF75ThyQr9FI9oareBcPqy zgLg== X-Gm-Message-State: AOAM5307sgIYkwPwyXjN5kWshKcndne+ChQCy1lTfK2Qd2guRJIVduTz M+UUrqciGp1zWkSLLAjFSIs= X-Google-Smtp-Source: ABdhPJwdtclBfiy7VjSzlPh5aFxVBpqF8KAyTx6Geszb6/CHdKeZ/m4+P27DNdagmYJgGXaXcMC1Vw== X-Received: by 2002:a1c:7407:: with SMTP id p7mr1774110wmc.51.1615849731136; Mon, 15 Mar 2021 16:08:51 -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: Cleber Rosa , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Wainer dos Santos Moschetta , Willian Rampazzo , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v3 2/5] tests/acceptance: Make pick_default_qemu_bin() more generic Date: Tue, 16 Mar 2021 00:08:35 +0100 Message-Id: <20210315230838.2973103-3-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210315230838.2973103-1-f4bug@amsat.org> References: <20210315230838.2973103-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) Make pick_default_qemu_bin() generic to find qemu-system or qemu-user binaries. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- 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/a= vocado_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) =20 =20 -def pick_default_qemu_bin(arch=3DNone): +def pick_default_qemu_bin(bin_fmt, arch=3DNone): """ 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=3DNone): # qemu binary path does not match arch for powerpc, handle it if 'ppc64le' in arch: arch =3D 'ppc64' - qemu_bin_relative_path =3D "./qemu-system-%s" % arch + qemu_bin_relative_path =3D os.path.join(".", bin_fmt % arch) if is_readable_executable_file(qemu_bin_relative_path): return qemu_bin_relative_path =20 @@ -187,14 +187,14 @@ def require_accelerator(self, accelerator): self.cancel("%s accelerator does not seem to be " "available" % accelerator) =20 - def setUp(self): + def setUp(self, bin_fmt): self.arch =3D self.params.get('arch', default=3Dself._get_unique_tag_val('ar= ch')) =20 self.machine =3D self.params.get('machine', default=3Dself._get_unique_tag_val(= 'machine')) =20 - default_qemu_bin =3D pick_default_qemu_bin(arch=3Dself.arch) + default_qemu_bin =3D pick_default_qemu_bin(bin_fmt, arch=3Dself.ar= ch) self.qemu_bin =3D self.params.get('qemu_bin', default=3Ddefault_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 =3D {} - super(Test, self).setUp() + super(Test, self).setUp("qemu-system-%s") =20 def _new_vm(self, *args): self._sd =3D tempfile.TemporaryDirectory(prefix=3D"avo_qemu_sock_") --=20 2.26.2 From nobody Sat May 18 23:44:16 2024 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; dmarc=fail(p=none dis=none) header.from=amsat.org ARC-Seal: i=1; a=rsa-sha256; t=1615849737; cv=none; d=zohomail.com; s=zohoarc; b=YPtb3AQc+FELRzJq5dE/BxsioBNPyfZr/SEiz74vZCr5D3c9RRutAeolt3DwzwCtmC/c03e1iyzFON1Roqo74lp4eeTnTyM9Ty16wa8hXe4FOreu7P6AOqkmlvVoZ7K5MvmCrYSTPWXIc05SHmRWmx1VwxdYjTa5QlcF9YjlGt8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615849737; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=LYhx91+2cSrSGuiAZO0E+KTXwLNRLCou9fW7dMGBBFM=; b=kmuTDCRvqt0C5gSPQyY38juhcAv/XhYA+5BZANX+QKU1Xu7WNN36Zmw8sSI/jLAXT3WbX69FCJt/03v65JHnd8io0nTK9/DYhmMtFqYQ5HTv/pYb6UfgBvmLYlWFPbEh84DpBFkpYEJz/IJ6quK93zpvoV2YZJr35+72WU/FF2c= 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; dmarc=fail header.from= (p=none dis=none) header.from= Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) by mx.zohomail.com with SMTPS id 1615849737993809.9806338501567; Mon, 15 Mar 2021 16:08:57 -0700 (PDT) Received: by mail-wm1-f42.google.com with SMTP id g8so9082599wmd.4 for ; Mon, 15 Mar 2021 16:08:57 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.redhat.com (17.red-88-21-201.staticip.rima-tde.net. [88.21.201.17]) by smtp.gmail.com with ESMTPSA id c9sm20175456wrr.78.2021.03.15.16.08.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Mar 2021 16:08:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=LYhx91+2cSrSGuiAZO0E+KTXwLNRLCou9fW7dMGBBFM=; b=uWa+zjPcEY+4WkLnLT/M9RfTMSvgDnBaM8KKyJVnU2+MsTEHjHQc3oipFtk9Rh2FES JDRxBLmAVkruXfBDvFyYnszDQXfBRlfvkwYp4p4a+n0T4KkuTzGdx/aHAo1k2qnHscE4 G5SsOYDJLz7MTg717LPAUkMG6/mYK+8qWSbAtP5rv+oYpfrb6lT4AVNbKaL2602Ts70B WHf3kyi3d7Y/gYtic6IwiOdGT3Z9VvG5XD8CR0gesnQXHNd6XloKOwbOcp+r1a1PZC7k flW5Z4AIMfVa5n2ZaSQvgoZP+NFoMSiUt7IeK2JvBoKKOcsfwKfFE0r+Dr/ONzI5E9lz 27bg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=LYhx91+2cSrSGuiAZO0E+KTXwLNRLCou9fW7dMGBBFM=; b=Th+4kqiW2c1hEy2NRMEFe3oZXMVPeyIUuBd2XIC2nw9LRpE2TEtjZCmuBBVJcPjvVA nQqJfcYlzPtb2raqkuy4deFqVCH1uFe7lqynlOusSyvZK78DjuhJi827EJToy+2DbZqF J6zKdbAiAuedZFRJRCG2RL3Pdham06EmZ6XcmWH/kLmrcrSRhny2WnF3LtXYZxJmI+xX 6C4CWdmKPmx2O0mIjC0uPScS5cLNhAYhmEUHzWTOyGKyd0AuEV+sEmynYqHiAO/woqCA GOSp+KgGhJ81oIS2Y1sJumRyUcri7KBvoAVmpjdMtXI1DRXE34i5ft+lLxeH6pyycEb6 NV7A== X-Gm-Message-State: AOAM532us8U8s0EHPpaCHK6098KKUDcl45EKKMA0K/WckywCsGnSA1i5 NrFxGOIqtduuUeoqYBeGPHE= X-Google-Smtp-Source: ABdhPJyrH0oTTtqp/LXbCRoChXO34MT6RxjKJDnalIetwHnTkzPXP0Y8OVljKfjzZF6xAG7FC4QEjg== X-Received: by 2002:a7b:c399:: with SMTP id s25mr1755606wmj.124.1615849736276; Mon, 15 Mar 2021 16:08:56 -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: Cleber Rosa , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Wainer dos Santos Moschetta , Willian Rampazzo , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v3 3/5] tests/acceptance: Introduce QemuUserTest base class Date: Tue, 16 Mar 2021 00:08:36 +0100 Message-Id: <20210315230838.2973103-4-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210315230838.2973103-1-f4bug@amsat.org> References: <20210315230838.2973103-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) Similarly to the 'System' Test base class with methods for testing system emulation, the QemuUserTest class contains methods useful to test user-mode emulation. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Wainer dos Santos Moschetta --- tests/acceptance/avocado_qemu/__init__.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/acceptance/avocado_qemu/__init__.py b/tests/acceptance/a= vocado_qemu/__init__.py index 08b3fa1124f..b471bee66e0 100644 --- a/tests/acceptance/avocado_qemu/__init__.py +++ b/tests/acceptance/avocado_qemu/__init__.py @@ -20,6 +20,7 @@ from avocado.utils import cloudinit from avocado.utils import datadrainer from avocado.utils import network +from avocado.utils import process from avocado.utils import vmimage from avocado.utils.path import find_command =20 @@ -256,6 +257,19 @@ def fetch_asset(self, name, find_only=3Dfind_only, cancel_on_missing=3Dcancel_on_missing) =20 +class QemuUserTest(QemuBaseTest): + def setUp(self): + self._ldpath =3D [] + super(QemuUserTest, self).setUp("qemu-%s") + + def add_ldpath(self, ldpath): + self._ldpath +=3D [os.path.abspath(ldpath)] + + def run(self, bin_path, args=3D[]): + qemu_args =3D " ".join(["-L %s" % ldpath for ldpath in self._ldpat= h]) + bin_args =3D " ".join(args) + return process.run("%s %s %s %s" % (self.qemu_bin, qemu_args, + bin_path, bin_args)) =20 class LinuxTest(Test): """Facilitates having a cloud-image Linux based available. --=20 2.26.2 From nobody Sat May 18 23:44:16 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.128.41 as permitted sender) client-ip=209.85.128.41; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-f41.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.41 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615849743; cv=none; d=zohomail.com; s=zohoarc; b=kyI8w5dpsjLyYc4qI7yAL0LzfpfJAjOKNAQhkVzVteVfSQuotdYTxhX2H+yIo4neGV3wYtTBvKNrLimwISKFpbgFVaqf7X9VfM79o/C9fiCpsXlk5ycedRoSWt3zS0VXqlxrhxMWpBhIPznyS3kcQUKfAdRtDGP/6AqFd2Ertw8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615849743; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=aBbDjOPo2KNb79pU06GVUHksAp78Q462ezyUFGJx4LU=; b=Ps4PtngE9CDJkvKjpTcRaBJw8Fv40MAn9aisB5acmRHyuJVoE9STQABBx3RV2G80/YSB1gKGnNNqB1kd0yvo5GEs8zmh/VaUcf62YHbW6uVARONAyAlXYoDfB6wE2IxK451pbg4VXdvQewgrsGXNyg1ofHgvlGZ56+ggl/WExeE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.41 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) by mx.zohomail.com with SMTPS id 1615849743028918.5507336579487; Mon, 15 Mar 2021 16:09:03 -0700 (PDT) Received: by mail-wm1-f41.google.com with SMTP id b2-20020a7bc2420000b029010be1081172so400953wmj.1 for ; Mon, 15 Mar 2021 16:09:02 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.redhat.com (17.red-88-21-201.staticip.rima-tde.net. [88.21.201.17]) by smtp.gmail.com with ESMTPSA id y1sm1059521wmq.29.2021.03.15.16.09.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Mar 2021 16:09:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=aBbDjOPo2KNb79pU06GVUHksAp78Q462ezyUFGJx4LU=; b=I0uzjyT5ZkiUwsuTCh9Oh/LROMloQWrUChZR5Lgn8bwsELaTlPD7683fg69/dATgNA eO3G1k9ze0UHhr21YmR31ZzYgn3t2xlR2IjSfCohlYlr8saEWIXRD1j08+TqWZ/OT80+ LVp+AIMNCmwPNBDZtetHGWqk6qKT3JvUOAtl1jf2yZBXYLa4RJUp5sSA+OCJh/XJiS3V FlsgvXPvrqDr3H+ayAuUlS2yvAWetuXrjmgGXXv1CG68OQl18AyNBRU/F8pdQ5MQK/2/ +kJ8xjTeGGFQFPhZwYeZjN3XpwF67S2LAhBlN53rLzQ99RcN/2b3Cmld+AZjQC3Uv3QT Rl1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=aBbDjOPo2KNb79pU06GVUHksAp78Q462ezyUFGJx4LU=; b=P9TBU/XmLpwwiLCUIA/DhqKcNkqaIeXWxMpV+y9lEQTVQGmzmQ7Jr09x45V93o1pY/ M6HDLq1G5I+599XjQUfUQiaYhLf2ACWMS2zj0u8XkTe7UCM1wpGeekiYR7ZPnKlYCPlz Z9o2HMmp7C8WM016z64klIAguzLK9bDl/ZmkGMr2AME6blHbY+nvdcGz3q5a6G12hLQU JvPdYr7rYivN7gdkW/aj4jHvmMpT30IP+iGDyGuPH7Beu5XTrzg43iA95zkhzPFO2yJ8 28F1NeRz6hcgKOwQRAwlMnXJqYKr90Arf1mmyLp4RcJFvQGMXT/W1EhrZZZCOF6wlmOU w6Tg== X-Gm-Message-State: AOAM530Q316dFChZ8/9NJKWH/oIQCr5Q6Sr6WDWiOzakTmNn0DMjfTnK QX/5yqN+kbCXWcsy+bkRR64= X-Google-Smtp-Source: ABdhPJzM1rTP2Ro3XwpejzVpRvf0n2FX/EexqPehL/ELWoM+YV1eaPCLZlgfPDoDkDYQRZ8QGABuZA== X-Received: by 2002:a05:600c:c4:: with SMTP id u4mr1786902wmm.27.1615849741232; Mon, 15 Mar 2021 16:09:01 -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: Cleber Rosa , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Wainer dos Santos Moschetta , Willian Rampazzo , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v3 4/5] tests/acceptance: Share useful helpers from virtiofs_submounts test Date: Tue, 16 Mar 2021 00:08:37 +0100 Message-Id: <20210315230838.2973103-5-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210315230838.2973103-1-f4bug@amsat.org> References: <20210315230838.2973103-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) Move the useful has_cmd()/has_cmds() helpers from the virtiofs test to the avocado_qemu public class. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Wainer dos Santos Moschetta --- tests/acceptance/avocado_qemu/__init__.py | 57 ++++++++++++++++++++++ tests/acceptance/virtiofs_submounts.py | 59 +---------------------- 2 files changed, 59 insertions(+), 57 deletions(-) diff --git a/tests/acceptance/avocado_qemu/__init__.py b/tests/acceptance/a= vocado_qemu/__init__.py index b471bee66e0..48c705fe3d2 100644 --- a/tests/acceptance/avocado_qemu/__init__.py +++ b/tests/acceptance/avocado_qemu/__init__.py @@ -11,6 +11,7 @@ import logging import os import shutil +import subprocess import sys import uuid import tempfile @@ -45,6 +46,62 @@ from qemu.accel import tcg_available from qemu.machine import QEMUMachine =20 +def has_cmd(name, args=3DNone): + """ + This function is for use in a @avocado.skipUnless decorator, e.g.: + + @skipUnless(*has_cmd('sudo -n', ('sudo', '-n', 'true'))) + def test_something_that_needs_sudo(self): + ... + """ + + if args is None: + args =3D ('which', name) + + try: + _, stderr, exitcode =3D run_cmd(args) + except Exception as e: + exitcode =3D -1 + stderr =3D str(e) + + if exitcode !=3D 0: + cmd_line =3D ' '.join(args) + err =3D f'{name} required, but "{cmd_line}" failed: {stderr.strip(= )}' + return (False, err) + else: + return (True, '') + +def has_cmds(*cmds): + """ + This function is for use in a @avocado.skipUnless decorator and + allows checking for the availability of multiple commands, e.g.: + + @skipUnless(*has_cmds(('cmd1', ('cmd1', '--some-parameter')), + 'cmd2', 'cmd3')) + def test_something_that_needs_cmd1_and_cmd2(self): + ... + """ + + for cmd in cmds: + if isinstance(cmd, str): + cmd =3D (cmd,) + + ok, errstr =3D has_cmd(*cmd) + if not ok: + return (False, errstr) + + return (True, '') + +def run_cmd(args): + subp =3D subprocess.Popen(args, + stdout=3Dsubprocess.PIPE, + stderr=3Dsubprocess.PIPE, + universal_newlines=3DTrue) + stdout, stderr =3D subp.communicate() + ret =3D subp.returncode + + return (stdout, stderr, ret) + def is_readable_executable_file(path): return os.path.isfile(path) and os.access(path, os.R_OK | os.X_OK) =20 diff --git a/tests/acceptance/virtiofs_submounts.py b/tests/acceptance/virt= iofs_submounts.py index 46fa65392a1..201645cd740 100644 --- a/tests/acceptance/virtiofs_submounts.py +++ b/tests/acceptance/virtiofs_submounts.py @@ -6,67 +6,12 @@ =20 from avocado import skipUnless from avocado_qemu import LinuxTest, BUILD_DIR +from avocado_qemu import has_cmds +from avocado_qemu import run_cmd from avocado_qemu import wait_for_console_pattern from avocado.utils import ssh =20 =20 -def run_cmd(args): - subp =3D subprocess.Popen(args, - stdout=3Dsubprocess.PIPE, - stderr=3Dsubprocess.PIPE, - universal_newlines=3DTrue) - stdout, stderr =3D subp.communicate() - ret =3D subp.returncode - - return (stdout, stderr, ret) - -def has_cmd(name, args=3DNone): - """ - This function is for use in a @avocado.skipUnless decorator, e.g.: - - @skipUnless(*has_cmd('sudo -n', ('sudo', '-n', 'true'))) - def test_something_that_needs_sudo(self): - ... - """ - - if args is None: - args =3D ('which', name) - - try: - _, stderr, exitcode =3D run_cmd(args) - except Exception as e: - exitcode =3D -1 - stderr =3D str(e) - - if exitcode !=3D 0: - cmd_line =3D ' '.join(args) - err =3D f'{name} required, but "{cmd_line}" failed: {stderr.strip(= )}' - return (False, err) - else: - return (True, '') - -def has_cmds(*cmds): - """ - This function is for use in a @avocado.skipUnless decorator and - allows checking for the availability of multiple commands, e.g.: - - @skipUnless(*has_cmds(('cmd1', ('cmd1', '--some-parameter')), - 'cmd2', 'cmd3')) - def test_something_that_needs_cmd1_and_cmd2(self): - ... - """ - - for cmd in cmds: - if isinstance(cmd, str): - cmd =3D (cmd,) - - ok, errstr =3D has_cmd(*cmd) - if not ok: - return (False, errstr) - - return (True, '') - - class VirtiofsSubmountsTest(LinuxTest): """ :avocado: tags=3Darch:x86_64 --=20 2.26.2 From nobody Sat May 18 23:44:16 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.221.52 as permitted sender) client-ip=209.85.221.52; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-f52.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.52 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615849747; cv=none; d=zohomail.com; s=zohoarc; b=n2n5xc+HokRR+TtuzqiKbjODGCG3+w/9wWfaW/GTanH+Ur7A6TeTis1dEJL1O6TM0qgZyhjarfBrPOGHLtC6UCfsIDFw5nSv5buO9rkSOJwcaetwKFbo3V4o0qi21kPzUZrXXJfmvTdC9ULvPR4BEIyK8MTcYzTRkyP96awklA8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615849747; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=YTXlhkG2Ovry9Jhj0XTrAo3VZzzvcKLTHnzNgI1T5kA=; b=nRoPWYP9Lo++bNrmLgmd1ImKEdiipHHBPx2WVpcn/LrIXFLDcSXPWW8ipPXtPkToH/SK5HJhCiE1Dt5JtTtrVQMQSv0q2Nm2/bq4/QxaCJr3QYfFAPXQJnlgY0ZVI7NSNKCiEQ7legkplficmADqoe517CmLPKlEPs5TBeEMU9E= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.52 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wr1-f52.google.com (mail-wr1-f52.google.com [209.85.221.52]) by mx.zohomail.com with SMTPS id 1615849747947603.5165980218973; Mon, 15 Mar 2021 16:09:07 -0700 (PDT) Received: by mail-wr1-f52.google.com with SMTP id e10so9519070wro.12 for ; Mon, 15 Mar 2021 16:09:07 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.redhat.com (17.red-88-21-201.staticip.rima-tde.net. [88.21.201.17]) by smtp.gmail.com with ESMTPSA id k12sm20886107wrx.7.2021.03.15.16.09.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Mar 2021 16:09:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=YTXlhkG2Ovry9Jhj0XTrAo3VZzzvcKLTHnzNgI1T5kA=; b=taNjqGhNnNAXP9edIB3tCuApJx9aESGakqJsWYEr4gMipLwzcBTIpUeJY6WT7+MiqA nDzPx8LwEYtmdqF3DKchjpbDRwRPycIc+bQ9PQdkzU5kuLeRSXG4uJsh64h9rHN87/6h QN2dkI7ochZ2yVCHBVpPGivRVwM7yAHadTCZwucvc53UM+h4QLvfOV3MK/Wzjui6HJky Wx5GcXWW6HKjKFUecN8rlM9YomHAW9EmboZ/DyZc83q1fJRKehHvq7ea7/0g39J3FlnU G5RAXF6heoQco6OtMmxBsJ5/xuI5+onAQBNB4T7SyWRFGGfpHBUtiQlGMUoy2vYPIbwO V+Qw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=YTXlhkG2Ovry9Jhj0XTrAo3VZzzvcKLTHnzNgI1T5kA=; b=Nlgf9d9k9tG/xcN2pddhGjy09jiy8x95KOLFlqOIs0iRzyV6SEBtUQewXQdG5rNPTS 7Awp9PAQRi+nlCO+1fV9AANi70UV077lPSE2G2eB67dFzA0oP+OZOedfQHDopWEePCBI 1y3+8wpZ+OrKGJ2WFTI4A/FiOZeNF5IeXh37rbWLXIdkFmJYZFp/t26AH6ZXG89XbJTK TxGwVKdUGYGLXtcSige1Bu4H/5VtPRYwDNzYbzY4oYH8q5snloiaVC/pSw3CtGoaM62P /B0QlM3hOG1wQflzjKrEDr47xGexwvYVhc3Yfy+R9jlVNYdeYcl2jVhNHlFPHYtHwy/N W7lA== X-Gm-Message-State: AOAM533/va8dRVQzZEXKqCnr4y9vmnAqsulV/PobGF79xxNA10gzC26d vQazuCDz420aGSM2Om76XRs= X-Google-Smtp-Source: ABdhPJwkMBGsz/pr5WofxyZxjFvwRyMYsUSSi5L2toiV10l3yW/FfnjWubBY8sxz4MWov1pRRi4pCQ== X-Received: by 2002:adf:ab52:: with SMTP id r18mr1757701wrc.65.1615849746231; Mon, 15 Mar 2021 16:09:06 -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: Cleber Rosa , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Wainer dos Santos Moschetta , Willian Rampazzo , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v3 5/5] tests/acceptance: Add bFLT loader linux-user test Date: Tue, 16 Mar 2021 00:08:38 +0100 Message-Id: <20210315230838.2973103-6-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210315230838.2973103-1-f4bug@amsat.org> References: <20210315230838.2973103-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) Add a very quick test that runs a busybox binary in bFLT format: $ avocado --show=3Dapp run -t linux_user tests/acceptance/load_bflt.py JOB ID : db94d5960ce564c50904d666a7e259148c27e88f JOB LOG : ~/avocado/job-results/job-2019-06-25T10.52-db94d59/job.log (1/1) tests/acceptance/load_bflt.py:LoadBFLT.test_stm32: PASS (0.15 s) RESULTS : PASS 1 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | = CANCEL 0 JOB TIME : 0.54 s Reviewed-by: Willian Rampazzo Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- v3: Check for 'cpio' (thuth) --- tests/acceptance/load_bflt.py | 54 +++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 tests/acceptance/load_bflt.py diff --git a/tests/acceptance/load_bflt.py b/tests/acceptance/load_bflt.py new file mode 100644 index 00000000000..f071a979d8e --- /dev/null +++ b/tests/acceptance/load_bflt.py @@ -0,0 +1,54 @@ +# Test the bFLT loader format +# +# Copyright (C) 2019 Philippe Mathieu-Daud=C3=A9 +# +# SPDX-License-Identifier: GPL-2.0-or-later + +import os +import bz2 +import subprocess + +from avocado import skipUnless +from avocado_qemu import QemuUserTest +from avocado_qemu import has_cmd + + +class LoadBFLT(QemuUserTest): + + def extract_cpio(self, cpio_path): + """ + Extracts a cpio archive into the test workdir + + :param cpio_path: path to the cpio archive + """ + cwd =3D os.getcwd() + os.chdir(self.workdir) + with bz2.open(cpio_path, 'rb') as archive_cpio: + subprocess.run(['cpio', '-i'], input=3Darchive_cpio.read(), + stderr=3Dsubprocess.DEVNULL) + os.chdir(cwd) + + @skipUnless(*has_cmd('cpio')) + @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code= ') + def test_stm32(self): + """ + :avocado: tags=3Darch:arm + :avocado: tags=3Dlinux_user + :avocado: tags=3Dquick + """ + # See https://elinux.org/STM32#User_Space + rootfs_url =3D ('https://elinux.org/images/5/51/' + 'Stm32_mini_rootfs.cpio.bz2') + rootfs_hash =3D '9f065e6ba40cce7411ba757f924f30fcc57951e6' + rootfs_path_bz2 =3D self.fetch_asset(rootfs_url, asset_hash=3Droot= fs_hash) + busybox_path =3D self.workdir + "/bin/busybox" + + self.extract_cpio(rootfs_path_bz2) + + res =3D self.run(busybox_path) + ver =3D 'BusyBox v1.24.0.git (2015-02-03 22:17:13 CET) multi-call = binary.' + self.assertIn(ver, res.stdout_text) + + res =3D self.run(busybox_path, ['uname', '-a']) + unm =3D 'armv7l GNU/Linux' + self.assertIn(unm, res.stdout_text) --=20 2.26.2