Skip to content

Commit

Permalink
Acceptance Tests: move definition of distro checksums to the framework
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
clebergnu committed Jul 13, 2021
1 parent 3419292 commit 889554f
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 14 deletions.
39 changes: 37 additions & 2 deletions tests/acceptance/avocado_qemu/__init__.py
Expand Up @@ -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.
Expand Down Expand Up @@ -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)
Expand Down
12 changes: 0 additions & 12 deletions tests/acceptance/boot_linux.py
Expand Up @@ -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
Expand Down Expand Up @@ -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',
Expand Down Expand Up @@ -121,9 +115,6 @@ class BootLinuxPPC64(LinuxTest):
:avocado: tags=arch:ppc64
"""

distro_checksum = ('7c3528b85a3df4b2306e892199a9e1e4'
'3f991c506f2cc390dc4efa2026ad2f58')

def test_pseries_tcg(self):
"""
:avocado: tags=machine:pseries
Expand All @@ -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):
"""
Expand Down

0 comments on commit 889554f

Please sign in to comment.