All of lore.kernel.org
 help / color / mirror / Atom feed
From: Cleber Rosa <crosa@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>, qemu-devel@nongnu.org
Cc: "Thomas Huth" <thuth@redhat.com>,
	"Willian Rampazzo" <wrampazz@redhat.com>,
	"John Snow" <jsnow@redhat.com>,
	"Wainer dos Santos Moschetta" <wainersm@redhat.com>,
	"Willian Rampazzo" <willianr@redhat.com>,
	"Kamil Rytarowski" <kamil@netbsd.org>,
	"Reinoud Zandijk" <reinoud@netbsd.org>,
	"Hervé Poussineau" <hpoussin@reactos.org>,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>,
	"Aleksandar Rikalo" <aleksandar.rikalo@syrmia.com>,
	"Eduardo Habkost" <ehabkost@redhat.com>,
	"Greg Kurz" <groug@kaod.org>,
	"Eric Auger" <eric.auger@redhat.com>,
	qemu-arm@nongnu.org, "Pavel Dovgalyuk" <pavel.dovgaluk@ispras.ru>,
	"Cleber Rosa" <crosa@redhat.com>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"David Gibson" <david@gibson.dropbear.id.au>,
	"Beraldo Leal" <bleal@redhat.com>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
	qemu-ppc@nongnu.org, "Paolo Bonzini" <pbonzini@redhat.com>,
	"Ryo ONODERA" <ryoon@netbsd.org>,
	"Aurelien Jarno" <aurelien@aurel32.net>
Subject: [PULL 05/23] Acceptance Tests: move definition of distro checksums to the framework
Date: Tue, 13 Jul 2021 17:19:05 -0400	[thread overview]
Message-ID: <20210713211923.3809241-6-crosa@redhat.com> (raw)
In-Reply-To: <20210713211923.3809241-1-crosa@redhat.com>

Instead of having, by default, the checksum in the tests, and the
definition of tests in the framework, let's keep them together.

A central definition for distributions is available, and it should
allow other known distros to be added more easily.

No behavior change is expected here, and tests can still define
a distro_checksum value if for some reason they want to override
the known distribution information.

Signed-off-by: Cleber Rosa <crosa@redhat.com>
Message-Id: <20210414221457.1653745-3-crosa@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Acked-by: Eric Auger <eric.auger@redhat.com>
[CR: split long lines]
Signed-off-by: Cleber Rosa <crosa@redhat.com>
---
 tests/acceptance/avocado_qemu/__init__.py | 39 +++++++++++++++++++++--
 tests/acceptance/boot_linux.py            | 12 -------
 2 files changed, 37 insertions(+), 14 deletions(-)

diff --git a/tests/acceptance/avocado_qemu/__init__.py b/tests/acceptance/avocado_qemu/__init__.py
index 0e62c15c60..3a144cded4 100644
--- a/tests/acceptance/avocado_qemu/__init__.py
+++ b/tests/acceptance/avocado_qemu/__init__.py
@@ -304,6 +304,35 @@ def ssh_command(self, command):
         return stdout_lines, stderr_lines
 
 
+#: A collection of known distros and their respective image checksum
+KNOWN_DISTROS = {
+    'fedora': {
+        '31': {
+            'x86_64':
+            {'checksum': ('e3c1b309d9203604922d6e255c2c5d09'
+                          '8a309c2d46215d8fc026954f3c5c27a0')},
+            'aarch64':
+            {'checksum': ('1e18d9c0cf734940c4b5d5ec592facae'
+                          'd2af0ad0329383d5639c997fdf16fe49')},
+            'ppc64':
+            {'checksum': ('7c3528b85a3df4b2306e892199a9e1e4'
+                          '3f991c506f2cc390dc4efa2026ad2f58')},
+            's390x':
+            {'checksum': ('4caaab5a434fd4d1079149a072fdc789'
+                          '1e354f834d355069ca982fdcaf5a122d')},
+            }
+        }
+    }
+
+
+def get_known_distro_checksum(distro, distro_version, arch):
+    try:
+        return KNOWN_DISTROS.get(distro).get(distro_version).\
+            get(arch).get('checksum')
+    except AttributeError:
+        return None
+
+
 class LinuxTest(Test, LinuxSSHMixIn):
     """Facilitates having a cloud-image Linux based available.
 
@@ -353,14 +382,20 @@ def download_boot(self):
         vmimage.QEMU_IMG = qemu_img
 
         self.log.info('Downloading/preparing boot image')
+        distro = 'fedora'
+        distro_version = '31'
+        known_distro_checksum = get_known_distro_checksum(distro,
+                                                          distro_version,
+                                                          self.arch)
+        distro_checksum = self.distro_checksum or known_distro_checksum
         # Fedora 31 only provides ppc64le images
         image_arch = self.arch
         if image_arch == 'ppc64':
             image_arch = 'ppc64le'
         try:
             boot = vmimage.get(
-                'fedora', arch=image_arch, version='31',
-                checksum=self.distro_checksum,
+                distro, arch=image_arch, version=distro_version,
+                checksum=distro_checksum,
                 algorithm='sha256',
                 cache_dir=self.cache_dirs[0],
                 snapshot_dir=self.workdir)
diff --git a/tests/acceptance/boot_linux.py b/tests/acceptance/boot_linux.py
index 3901c23690..34c4366366 100644
--- a/tests/acceptance/boot_linux.py
+++ b/tests/acceptance/boot_linux.py
@@ -20,9 +20,6 @@ class BootLinuxX8664(LinuxTest):
     :avocado: tags=arch:x86_64
     """
 
-    distro_checksum = ('e3c1b309d9203604922d6e255c2c5d09'
-                       '8a309c2d46215d8fc026954f3c5c27a0')
-
     def test_pc_i440fx_tcg(self):
         """
         :avocado: tags=machine:pc
@@ -67,9 +64,6 @@ class BootLinuxAarch64(LinuxTest):
     :avocado: tags=machine:gic-version=2
     """
 
-    distro_checksum = ('1e18d9c0cf734940c4b5d5ec592facae'
-                       'd2af0ad0329383d5639c997fdf16fe49')
-
     def add_common_args(self):
         self.vm.add_args('-bios',
                          os.path.join(BUILD_DIR, 'pc-bios',
@@ -121,9 +115,6 @@ class BootLinuxPPC64(LinuxTest):
     :avocado: tags=arch:ppc64
     """
 
-    distro_checksum = ('7c3528b85a3df4b2306e892199a9e1e4'
-                       '3f991c506f2cc390dc4efa2026ad2f58')
-
     def test_pseries_tcg(self):
         """
         :avocado: tags=machine:pseries
@@ -139,9 +130,6 @@ class BootLinuxS390X(LinuxTest):
     :avocado: tags=arch:s390x
     """
 
-    distro_checksum = ('4caaab5a434fd4d1079149a072fdc789'
-                       '1e354f834d355069ca982fdcaf5a122d')
-
     @skipIf(os.getenv('GITLAB_CI'), 'Running on GitLab')
     def test_s390_ccw_virtio_tcg(self):
         """
-- 
2.31.1



  parent reply	other threads:[~2021-07-13 21:23 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-13 21:19 [PULL 00/23] Python and Acceptance Tests Cleber Rosa
2021-07-13 21:19 ` [PULL 01/23] Acceptance Tests: use the job work directory for created VMs Cleber Rosa
2021-07-13 21:19 ` [PULL 02/23] Acceptance Tests: log information when creating QEMUMachine Cleber Rosa
2021-07-13 21:19 ` [PULL 03/23] Acceptance Tests: distinguish between temp and logs dir Cleber Rosa
2021-07-13 21:19 ` [PULL 04/23] Acceptance Tests: rename attribute holding the distro image checksum Cleber Rosa
2021-07-13 21:19 ` Cleber Rosa [this message]
2021-07-13 21:19 ` [PULL 06/23] Acceptance Tests: support choosing specific distro and version Cleber Rosa
2021-07-13 21:19 ` [PULL 07/23] tests/acceptance: Ignore binary data sent on serial console Cleber Rosa
2021-07-13 21:19 ` [PULL 08/23] avocado_qemu: Fix KNOWN_DISTROS map into the LinuxDistro class Cleber Rosa
2021-07-13 21:19 ` [PULL 09/23] Acceptance Tests: Add default kernel params and pxeboot url to the KNOWN_DISTROS collection Cleber Rosa
2021-07-13 21:19 ` [PULL 10/23] avocado_qemu: Add SMMUv3 tests Cleber Rosa
2021-07-13 21:19 ` [PULL 11/23] avocado_qemu: Add Intel iommu tests Cleber Rosa
2021-07-13 21:19 ` [PULL 12/23] tests/acceptance: Tag NetBSD tests as 'os:netbsd' Cleber Rosa
2021-07-13 21:19 ` [PULL 13/23] tests/acceptance: Automatic set -cpu to the test vm Cleber Rosa
2021-07-13 21:19 ` [PULL 14/23] tests/acceptance: Fix mismatch on cpu tagged tests Cleber Rosa
2021-07-13 21:19 ` [PULL 15/23] tests/acceptance: Let the framework handle "cpu:VALUE" " Cleber Rosa
2021-07-13 21:19 ` [PULL 16/23] tests/acceptance: Tagging tests with "cpu:VALUE" Cleber Rosa
2021-07-13 21:19 ` [PULL 17/23] python/qemu: Add args property to the QEMUMachine class Cleber Rosa
2021-07-13 21:19 ` [PULL 18/23] tests/acceptance: Add set_vm_arg() to the Test class Cleber Rosa
2021-07-13 21:19 ` [PULL 19/23] tests/acceptance: Handle cpu tag on x86_cpu_model_versions tests Cleber Rosa
2021-07-13 21:19 ` [PULL 20/23] python: Configure tox to skip missing interpreters Cleber Rosa
2021-07-13 21:19 ` [PULL 21/23] Acceptance tests: do not try to reuse packages from the system Cleber Rosa
2021-07-13 21:19 ` [PULL 22/23] tests/acceptance/linux_ssh_mips_malta.py: drop identical setUp Cleber Rosa
2021-07-13 21:19 ` [PULL 23/23] tests/acceptance/cpu_queries.py: use the proper logging channels Cleber Rosa
2021-07-14 19:33 ` [PULL 00/23] Python and Acceptance Tests Peter Maydell

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=20210713211923.3809241-6-crosa@redhat.com \
    --to=crosa@redhat.com \
    --cc=aleksandar.rikalo@syrmia.com \
    --cc=alex.bennee@linaro.org \
    --cc=aurelien@aurel32.net \
    --cc=bleal@redhat.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=ehabkost@redhat.com \
    --cc=eric.auger@redhat.com \
    --cc=f4bug@amsat.org \
    --cc=groug@kaod.org \
    --cc=hpoussin@reactos.org \
    --cc=jsnow@redhat.com \
    --cc=kamil@netbsd.org \
    --cc=pavel.dovgaluk@ispras.ru \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=philmd@redhat.com \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=reinoud@netbsd.org \
    --cc=ryoon@netbsd.org \
    --cc=thuth@redhat.com \
    --cc=wainersm@redhat.com \
    --cc=willianr@redhat.com \
    --cc=wrampazz@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.