aboutsummaryrefslogtreecommitdiff
path: root/tests/acceptance
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2019-12-17 14:34:31 +0000
committerPeter Maydell <peter.maydell@linaro.org>2019-12-17 14:34:31 +0000
commitf6e7a97acbe913b8a027e695e9c8793739914c7c (patch)
tree18734ff6bb69670ca58d4074ee1152b1192efd41 /tests/acceptance
parent98ac38cd5ad5e9496277c943020bc4bf16adf10b (diff)
parente42cb9678cee7ff7c28afe7917c1002d6d8fdc0d (diff)
Merge remote-tracking branch 'remotes/cleber/tags/python-next-pull-request' into staging
Python queue 2019-12-17 # gpg: Signature made Tue 17 Dec 2019 05:12:43 GMT # gpg: using RSA key 7ABB96EB8B46B94D5E0FE9BB657E8D33A5F209F3 # gpg: Good signature from "Cleber Rosa <crosa@redhat.com>" [marginal] # gpg: WARNING: This key is not certified with sufficiently trusted signatures! # gpg: It is not certain that the signature belongs to the owner. # Primary key fingerprint: 7ABB 96EB 8B46 B94D 5E0F E9BB 657E 8D33 A5F2 09F3 * remotes/cleber/tags/python-next-pull-request: python/qemu: Remove unneeded imports in __init__ python/qemu: accel: Add tcg_available() method python/qemu: accel: Strengthen kvm_available() checks python/qemu: accel: Add list_accel() method python/qemu: Move kvm_available() to its own module Acceptance tests: use relative location for tests Acceptance tests: use avocado tags for machine type Acceptance tests: introduce utility method for tags unique vals Acceptance test x86_cpu_model_versions: use default vm tests/acceptance: Makes linux_initrd and empty_cpu_model use QEMUMachine python/qemu: Add set_qmp_monitor() to QEMUMachine analyze-migration.py: replace numpy with python 3.2 analyze-migration.py: fix find() type error Revert "Acceptance test: cancel test if m68k kernel packages goes missing" tests/boot_linux_console: Fetch assets from Debian snapshot archives Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'tests/acceptance')
-rw-r--r--tests/acceptance/avocado_qemu/__init__.py24
-rw-r--r--tests/acceptance/boot_linux_console.py27
-rw-r--r--tests/acceptance/cpu_queries.py2
-rw-r--r--tests/acceptance/empty_cpu_model.py12
-rw-r--r--tests/acceptance/linux_initrd.py15
-rw-r--r--tests/acceptance/linux_ssh_mips_malta.py5
-rw-r--r--tests/acceptance/machine_m68k_nextcube.py21
-rw-r--r--tests/acceptance/machine_sparc_leon3.py3
-rw-r--r--tests/acceptance/ppc_prep_40p.py3
-rw-r--r--tests/acceptance/x86_cpu_model_versions.py137
10 files changed, 121 insertions, 128 deletions
diff --git a/tests/acceptance/avocado_qemu/__init__.py b/tests/acceptance/avocado_qemu/__init__.py
index 9a57c020d8..6618ea67c1 100644
--- a/tests/acceptance/avocado_qemu/__init__.py
+++ b/tests/acceptance/avocado_qemu/__init__.py
@@ -100,14 +100,24 @@ def exec_command_and_wait_for_pattern(test, command,
class Test(avocado.Test):
+ def _get_unique_tag_val(self, tag_name):
+ """
+ Gets a tag value, if unique for a key
+ """
+ vals = self.tags.get(tag_name, [])
+ if len(vals) == 1:
+ return vals.pop()
+ return None
+
def setUp(self):
self._vms = {}
- arches = self.tags.get('arch', [])
- if len(arches) == 1:
- arch = arches.pop()
- else:
- arch = None
- self.arch = self.params.get('arch', default=arch)
+
+ self.arch = self.params.get('arch',
+ default=self._get_unique_tag_val('arch'))
+
+ 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)
@@ -129,6 +139,8 @@ class Test(avocado.Test):
name = str(uuid.uuid4())
if self._vms.get(name) is None:
self._vms[name] = self._new_vm(*args)
+ if self.machine is not None:
+ self._vms[name].set_machine(self.machine)
return self._vms[name]
def tearDown(self):
diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py
index 7e41cebd47..9c6aa2040a 100644
--- a/tests/acceptance/boot_linux_console.py
+++ b/tests/acceptance/boot_linux_console.py
@@ -62,7 +62,6 @@ class BootLinuxConsole(Test):
kernel_hash = '23bebd2680757891cf7adedb033532163a792495'
kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
- self.vm.set_machine('pc')
self.vm.set_console()
kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=ttyS0'
self.vm.add_args('-kernel', kernel_path,
@@ -85,7 +84,6 @@ class BootLinuxConsole(Test):
kernel_path = self.extract_from_deb(deb_path,
'/boot/vmlinux-2.6.32-5-4kc-malta')
- self.vm.set_machine('malta')
self.vm.set_console()
kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=ttyS0'
self.vm.add_args('-kernel', kernel_path,
@@ -118,7 +116,6 @@ class BootLinuxConsole(Test):
kernel_path = self.extract_from_deb(deb_path,
'/boot/vmlinux-2.6.32-5-5kc-malta')
- self.vm.set_machine('malta')
self.vm.set_console()
kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=ttyS0'
self.vm.add_args('-kernel', kernel_path,
@@ -148,7 +145,6 @@ class BootLinuxConsole(Test):
initrd_path = self.workdir + "rootfs.cpio"
archive.gzip_uncompress(initrd_path_gz, initrd_path)
- self.vm.set_machine('malta')
self.vm.set_console()
kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE
+ 'console=ttyS0 console=tty '
@@ -188,7 +184,6 @@ class BootLinuxConsole(Test):
initrd_path = self.workdir + "rootfs.cpio"
archive.gzip_uncompress(initrd_path_gz, initrd_path)
- self.vm.set_machine('malta')
self.vm.set_console()
kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE
+ 'console=ttyS0 console=tty '
@@ -215,7 +210,6 @@ class BootLinuxConsole(Test):
with open(kernel_path, 'wb') as f_out:
shutil.copyfileobj(f_in, f_out)
- self.vm.set_machine('malta')
self.vm.set_console()
kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE
+ 'mem=256m@@0x0 '
@@ -275,7 +269,6 @@ class BootLinuxConsole(Test):
kernel_hash = '8c73e469fc6ea06a58dc83a628fc695b693b8493'
kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
- self.vm.set_machine('virt')
self.vm.set_console()
kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
'console=ttyAMA0')
@@ -297,7 +290,6 @@ class BootLinuxConsole(Test):
kernel_hash = 'e9826d741b4fb04cadba8d4824d1ed3b7fb8b4d4'
kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
- self.vm.set_machine('virt')
self.vm.set_console()
kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
'console=ttyAMA0')
@@ -310,7 +302,7 @@ class BootLinuxConsole(Test):
def test_arm_emcraft_sf2(self):
"""
:avocado: tags=arch:arm
- :avocado: tags=machine:emcraft_sf2
+ :avocado: tags=machine:emcraft-sf2
:avocado: tags=endian:little
"""
uboot_url = ('https://raw.githubusercontent.com/'
@@ -324,7 +316,6 @@ class BootLinuxConsole(Test):
spi_hash = '85f698329d38de63aea6e884a86fbde70890a78a'
spi_path = self.fetch_asset(spi_url, asset_hash=spi_hash)
- self.vm.set_machine('emcraft-sf2')
self.vm.set_console()
kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE
self.vm.add_args('-kernel', uboot_path,
@@ -351,7 +342,6 @@ class BootLinuxConsole(Test):
kernel_path = self.extract_from_deb(deb_path, '/boot/kernel7.img')
dtb_path = self.extract_from_deb(deb_path, '/boot/bcm2709-rpi-2-b.dtb')
- self.vm.set_machine('raspi2')
self.vm.set_console()
kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
serial_kernel_cmdline[uart_id])
@@ -393,7 +383,6 @@ class BootLinuxConsole(Test):
initrd_path = os.path.join(self.workdir, 'rootfs.cpio')
archive.gzip_uncompress(initrd_path_gz, initrd_path)
- self.vm.set_machine('smdkc210')
self.vm.set_console()
kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
'earlycon=exynos4210,0x13800000 earlyprintk ' +
@@ -414,7 +403,7 @@ class BootLinuxConsole(Test):
def test_s390x_s390_ccw_virtio(self):
"""
:avocado: tags=arch:s390x
- :avocado: tags=machine:s390_ccw_virtio
+ :avocado: tags=machine:s390-ccw-virtio
"""
kernel_url = ('https://archives.fedoraproject.org/pub/archive'
'/fedora-secondary/releases/29/Everything/s390x/os/images'
@@ -422,7 +411,6 @@ class BootLinuxConsole(Test):
kernel_hash = 'e8e8439103ef8053418ef062644ffd46a7919313'
kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
- self.vm.set_machine('s390-ccw-virtio')
self.vm.set_console()
kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=sclp0'
self.vm.add_args('-nodefaults',
@@ -444,7 +432,6 @@ class BootLinuxConsole(Test):
uncompressed_kernel = archive.uncompress(kernel_path, self.workdir)
- self.vm.set_machine('clipper')
self.vm.set_console()
kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=ttyS0'
self.vm.add_args('-vga', 'std',
@@ -465,7 +452,6 @@ class BootLinuxConsole(Test):
kernel_hash = '3fe04abfc852b66653b8c3c897a59a689270bc77'
kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
- self.vm.set_machine('pseries')
self.vm.set_console()
kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=hvc0'
self.vm.add_args('-kernel', kernel_path,
@@ -479,17 +465,14 @@ class BootLinuxConsole(Test):
:avocado: tags=arch:m68k
:avocado: tags=machine:q800
"""
- deb_url = ('http://ftp.ports.debian.org/debian-ports/pool-m68k/main'
+ deb_url = ('https://snapshot.debian.org/archive/debian-ports'
+ '/20191021T083923Z/pool-m68k/main'
'/l/linux/kernel-image-5.3.0-1-m68k-di_5.3.7-1_m68k.udeb')
deb_hash = '044954bb9be4160a3ce81f8bc1b5e856b75cccd1'
- try:
- deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash)
- except OSError as exp:
- self.cancel(exp)
+ deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash)
kernel_path = self.extract_from_deb(deb_path,
'/boot/vmlinux-5.3.0-1-m68k')
- self.vm.set_machine('q800')
self.vm.set_console()
kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
'console=ttyS0 vga=off')
diff --git a/tests/acceptance/cpu_queries.py b/tests/acceptance/cpu_queries.py
index af47d2795a..293dccb89a 100644
--- a/tests/acceptance/cpu_queries.py
+++ b/tests/acceptance/cpu_queries.py
@@ -20,8 +20,8 @@ class QueryCPUModelExpansion(Test):
def test(self):
"""
:avocado: tags=arch:x86_64
+ :avocado: tags=machine:none
"""
- self.vm.set_machine('none')
self.vm.add_args('-S')
self.vm.launch()
diff --git a/tests/acceptance/empty_cpu_model.py b/tests/acceptance/empty_cpu_model.py
index 3f4f663582..a1e59e45e4 100644
--- a/tests/acceptance/empty_cpu_model.py
+++ b/tests/acceptance/empty_cpu_model.py
@@ -7,13 +7,13 @@
#
# This work is licensed under the terms of the GNU GPL, version 2 or
# later. See the COPYING file in the top-level directory.
-import subprocess
from avocado_qemu import Test
class EmptyCPUModel(Test):
def test(self):
- cmd = [self.qemu_bin, '-S', '-display', 'none', '-machine', 'none', '-cpu', '']
- r = subprocess.run(cmd, stderr=subprocess.PIPE, stdout=subprocess.PIPE)
- self.assertEquals(r.returncode, 1, "QEMU exit code should be 1")
- self.assertEquals(r.stdout, b'', "QEMU stdout should be empty")
- self.assertNotEquals(r.stderr, b'', "QEMU stderr shouldn't be empty")
+ self.vm.add_args('-S', '-display', 'none', '-machine', 'none', '-cpu', '')
+ self.vm.set_qmp_monitor(enabled=False)
+ self.vm.launch()
+ self.vm.wait()
+ self.assertEquals(self.vm.exitcode(), 1, "QEMU exit code should be 1")
+ self.assertRegex(self.vm.get_log(), r'-cpu option cannot be empty')
diff --git a/tests/acceptance/linux_initrd.py b/tests/acceptance/linux_initrd.py
index c61d9826a4..a3e54d3fc9 100644
--- a/tests/acceptance/linux_initrd.py
+++ b/tests/acceptance/linux_initrd.py
@@ -10,7 +10,6 @@
import logging
import tempfile
-from avocado.utils.process import run
from avocado_qemu import Test
@@ -20,6 +19,7 @@ class LinuxInitrd(Test):
Checks QEMU evaluates correctly the initrd file passed as -initrd option.
:avocado: tags=arch:x86_64
+ :avocado: tags=machine:pc
"""
timeout = 300
@@ -41,13 +41,15 @@ class LinuxInitrd(Test):
initrd.seek(max_size)
initrd.write(b'\0')
initrd.flush()
- cmd = "%s -kernel %s -initrd %s -m 4096" % (
- self.qemu_bin, kernel_path, initrd.name)
- res = run(cmd, ignore_status=True)
- self.assertEqual(res.exit_status, 1)
+ self.vm.add_args('-kernel', kernel_path, '-initrd', initrd.name,
+ '-m', '4096')
+ self.vm.set_qmp_monitor(enabled=False)
+ self.vm.launch()
+ self.vm.wait()
+ self.assertEqual(self.vm.exitcode(), 1)
expected_msg = r'.*initrd is too large.*max: \d+, need %s.*' % (
max_size + 1)
- self.assertRegex(res.stderr_text, expected_msg)
+ self.assertRegex(self.vm.get_log(), expected_msg)
def test_with_2gib_file_should_work_with_linux_v4_16(self):
"""
@@ -66,7 +68,6 @@ class LinuxInitrd(Test):
initrd.write(b'\0')
initrd.flush()
- self.vm.set_machine('pc')
self.vm.set_console()
kernel_command_line = 'console=ttyS0'
self.vm.add_args('-kernel', kernel_path,
diff --git a/tests/acceptance/linux_ssh_mips_malta.py b/tests/acceptance/linux_ssh_mips_malta.py
index 4db18de800..90d7f2f167 100644
--- a/tests/acceptance/linux_ssh_mips_malta.py
+++ b/tests/acceptance/linux_ssh_mips_malta.py
@@ -113,7 +113,6 @@ class LinuxSSH(Test):
image_url, image_hash = self.get_image_info(endianess)
image_path = self.fetch_asset(image_url, asset_hash=image_hash)
- self.vm.set_machine('malta')
self.vm.set_console()
kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE
+ 'console=ttyS0 root=/dev/sda1')
@@ -217,7 +216,6 @@ class LinuxSSH(Test):
def test_mips_malta32eb_kernel3_2_0(self):
"""
:avocado: tags=arch:mips
- :avocado: tags=machine:malta
:avocado: tags=endian:big
:avocado: tags=device:pcnet32
"""
@@ -226,7 +224,6 @@ class LinuxSSH(Test):
def test_mips_malta32el_kernel3_2_0(self):
"""
:avocado: tags=arch:mipsel
- :avocado: tags=machine:malta
:avocado: tags=endian:little
:avocado: tags=device:pcnet32
"""
@@ -235,7 +232,6 @@ class LinuxSSH(Test):
def test_mips_malta64eb_kernel3_2_0(self):
"""
:avocado: tags=arch:mips64
- :avocado: tags=machine:malta
:avocado: tags=endian:big
:avocado: tags=device:pcnet32
"""
@@ -244,7 +240,6 @@ class LinuxSSH(Test):
def test_mips_malta64el_kernel3_2_0(self):
"""
:avocado: tags=arch:mips64el
- :avocado: tags=machine:malta
:avocado: tags=endian:little
:avocado: tags=device:pcnet32
"""
diff --git a/tests/acceptance/machine_m68k_nextcube.py b/tests/acceptance/machine_m68k_nextcube.py
index fcd2c58ee7..32cf571f94 100644
--- a/tests/acceptance/machine_m68k_nextcube.py
+++ b/tests/acceptance/machine_m68k_nextcube.py
@@ -43,6 +43,11 @@ def tesseract_available(expected_version):
class NextCubeMachine(Test):
+ """
+ :avocado: tags=arch:m68k
+ :avocado: tags=machine:next-cube
+ :avocado: tags=device:framebuffer
+ """
timeout = 15
@@ -52,7 +57,6 @@ class NextCubeMachine(Test):
rom_hash = 'b3534796abae238a0111299fc406a9349f7fee24'
rom_path = self.fetch_asset(rom_url, asset_hash=rom_hash)
- self.vm.set_machine('next-cube')
self.vm.add_args('-bios', rom_path)
self.vm.launch()
@@ -66,11 +70,6 @@ class NextCubeMachine(Test):
@skipUnless(PIL_AVAILABLE, 'Python PIL not installed')
def test_bootrom_framebuffer_size(self):
- """
- :avocado: tags=arch:m68k
- :avocado: tags=machine:next_cube
- :avocado: tags=device:framebuffer
- """
screenshot_path = os.path.join(self.workdir, "dump.png")
self.check_bootrom_framebuffer(screenshot_path)
@@ -80,11 +79,6 @@ class NextCubeMachine(Test):
@skipUnless(tesseract_available(3), 'tesseract v3 OCR tool not available')
def test_bootrom_framebuffer_ocr_with_tesseract_v3(self):
- """
- :avocado: tags=arch:m68k
- :avocado: tags=machine:next_cube
- :avocado: tags=device:framebuffer
- """
screenshot_path = os.path.join(self.workdir, "dump.png")
self.check_bootrom_framebuffer(screenshot_path)
@@ -101,11 +95,6 @@ class NextCubeMachine(Test):
# that it is still alpha-level software.
@skipUnless(tesseract_available(4), 'tesseract v4 OCR tool not available')
def test_bootrom_framebuffer_ocr_with_tesseract_v4(self):
- """
- :avocado: tags=arch:m68k
- :avocado: tags=machine:next_cube
- :avocado: tags=device:framebuffer
- """
screenshot_path = os.path.join(self.workdir, "dump.png")
self.check_bootrom_framebuffer(screenshot_path)
diff --git a/tests/acceptance/machine_sparc_leon3.py b/tests/acceptance/machine_sparc_leon3.py
index 298f1e25e6..f77e210ccb 100644
--- a/tests/acceptance/machine_sparc_leon3.py
+++ b/tests/acceptance/machine_sparc_leon3.py
@@ -16,7 +16,7 @@ class Leon3Machine(Test):
def test_leon3_helenos_uimage(self):
"""
:avocado: tags=arch:sparc
- :avocado: tags=machine:leon3
+ :avocado: tags=machine:leon3_generic
:avocado: tags=binfmt:uimage
"""
kernel_url = ('http://www.helenos.org/releases/'
@@ -24,7 +24,6 @@ class Leon3Machine(Test):
kernel_hash = 'a88c9cfdb8430c66650e5290a08765f9bf049a30'
kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
- self.vm.set_machine('leon3_generic')
self.vm.set_console()
self.vm.add_args('-kernel', kernel_path)
diff --git a/tests/acceptance/ppc_prep_40p.py b/tests/acceptance/ppc_prep_40p.py
index 6f507fb0a6..b27572f212 100644
--- a/tests/acceptance/ppc_prep_40p.py
+++ b/tests/acceptance/ppc_prep_40p.py
@@ -39,7 +39,6 @@ class IbmPrep40pMachine(Test):
drive_hash = 'dbcfc09912e71bd5f0d82c7c1ee43082fb596ceb'
drive_path = self.fetch_asset(drive_url, asset_hash=drive_hash)
- self.vm.set_machine('40p')
self.vm.set_console()
self.vm.add_args('-bios', bios_path,
'-fda', drive_path)
@@ -53,7 +52,6 @@ class IbmPrep40pMachine(Test):
:avocado: tags=arch:ppc
:avocado: tags=machine:40p
"""
- self.vm.set_machine('40p')
self.vm.set_console()
self.vm.add_args('-m', '192') # test fw_cfg
@@ -73,7 +71,6 @@ class IbmPrep40pMachine(Test):
drive_hash = 'ac6fa2707d888b36d6fa64de6e7fe48e'
drive_path = self.fetch_asset(drive_url, asset_hash=drive_hash,
algorithm='md5')
- self.vm.set_machine('40p')
self.vm.set_console()
self.vm.add_args('-cdrom', drive_path,
'-boot', 'd')
diff --git a/tests/acceptance/x86_cpu_model_versions.py b/tests/acceptance/x86_cpu_model_versions.py
index 5fc9ca4bc6..90558d9a71 100644
--- a/tests/acceptance/x86_cpu_model_versions.py
+++ b/tests/acceptance/x86_cpu_model_versions.py
@@ -25,10 +25,6 @@
import avocado_qemu
import re
-def get_cpu_prop(vm, prop):
- cpu_path = vm.command('query-cpus')[0].get('qom_path')
- return vm.command('qom-get', path=cpu_path, property=prop)
-
class X86CPUModelAliases(avocado_qemu.Test):
"""
Validation of PC CPU model versions and CPU model aliases
@@ -79,12 +75,15 @@ class X86CPUModelAliases(avocado_qemu.Test):
"EPYC-IBPB shouldn't be versioned")
def test_4_0_alias_compatibility(self):
- """Check if pc-*-4.0 unversioned CPU model won't be reported as aliases"""
+ """
+ Check if pc-*-4.0 unversioned CPU model won't be reported as aliases
+
+ :avocado: tags=machine:pc-i440fx-4.0
+ """
# pc-*-4.0 won't expose non-versioned CPU models as aliases
# We do this to help management software to keep compatibility
# with older QEMU versions that didn't have the versioned CPU model
self.vm.add_args('-S')
- self.vm.set_machine('pc-i440fx-4.0')
self.vm.launch()
cpus = dict((m['name'], m) for m in self.vm.command('query-cpu-definitions'))
@@ -109,9 +108,12 @@ class X86CPUModelAliases(avocado_qemu.Test):
self.assertNotIn('alias-of', c, "%s shouldn't be an alias" % (name))
def test_4_1_alias(self):
- """Check if unversioned CPU model is an alias pointing to right version"""
+ """
+ Check if unversioned CPU model is an alias pointing to right version
+
+ :avocado: tags=machine:pc-i440fx-4.1
+ """
self.vm.add_args('-S')
- self.vm.set_machine('pc-i440fx-4.1')
self.vm.launch()
cpus = dict((m['name'], m) for m in self.vm.command('query-cpu-definitions'))
@@ -211,9 +213,12 @@ class X86CPUModelAliases(avocado_qemu.Test):
self.validate_aliases(cpus)
def test_none_alias(self):
- """Check if unversioned CPU model is an alias pointing to some version"""
+ """
+ Check if unversioned CPU model is an alias pointing to some version
+
+ :avocado: tags=machine:none
+ """
self.vm.add_args('-S')
- self.vm.set_machine('none')
self.vm.launch()
cpus = dict((m['name'], m) for m in self.vm.command('query-cpu-definitions'))
@@ -241,78 +246,90 @@ class CascadelakeArchCapabilities(avocado_qemu.Test):
:avocado: tags=arch:x86_64
"""
+ def get_cpu_prop(self, prop):
+ cpu_path = self.vm.command('query-cpus')[0].get('qom_path')
+ return self.vm.command('qom-get', path=cpu_path, property=prop)
+
def test_4_1(self):
+ """
+ :avocado: tags=machine:pc-i440fx-4.1
+ """
# machine-type only:
- vm = self.get_vm()
- vm.add_args('-S')
- vm.set_machine('pc-i440fx-4.1')
- vm.add_args('-cpu', 'Cascadelake-Server,x-force-features=on,check=off,enforce=off')
- vm.launch()
- self.assertFalse(get_cpu_prop(vm, 'arch-capabilities'),
+ self.vm.add_args('-S')
+ self.vm.add_args('-cpu', 'Cascadelake-Server,x-force-features=on,check=off,enforce=off')
+ self.vm.launch()
+ self.assertFalse(self.get_cpu_prop('arch-capabilities'),
'pc-i440fx-4.1 + Cascadelake-Server should not have arch-capabilities')
def test_4_0(self):
- vm = self.get_vm()
- vm.add_args('-S')
- vm.set_machine('pc-i440fx-4.0')
- vm.add_args('-cpu', 'Cascadelake-Server,x-force-features=on,check=off,enforce=off')
- vm.launch()
- self.assertFalse(get_cpu_prop(vm, 'arch-capabilities'),
+ """
+ :avocado: tags=machine:pc-i440fx-4.0
+ """
+ self.vm.add_args('-S')
+ self.vm.add_args('-cpu', 'Cascadelake-Server,x-force-features=on,check=off,enforce=off')
+ self.vm.launch()
+ self.assertFalse(self.get_cpu_prop('arch-capabilities'),
'pc-i440fx-4.0 + Cascadelake-Server should not have arch-capabilities')
def test_set_4_0(self):
+ """
+ :avocado: tags=machine:pc-i440fx-4.0
+ """
# command line must override machine-type if CPU model is not versioned:
- vm = self.get_vm()
- vm.add_args('-S')
- vm.set_machine('pc-i440fx-4.0')
- vm.add_args('-cpu', 'Cascadelake-Server,x-force-features=on,check=off,enforce=off,+arch-capabilities')
- vm.launch()
- self.assertTrue(get_cpu_prop(vm, 'arch-capabilities'),
+ self.vm.add_args('-S')
+ self.vm.add_args('-cpu', 'Cascadelake-Server,x-force-features=on,check=off,enforce=off,+arch-capabilities')
+ self.vm.launch()
+ self.assertTrue(self.get_cpu_prop('arch-capabilities'),
'pc-i440fx-4.0 + Cascadelake-Server,+arch-capabilities should have arch-capabilities')
def test_unset_4_1(self):
- vm = self.get_vm()
- vm.add_args('-S')
- vm.set_machine('pc-i440fx-4.1')
- vm.add_args('-cpu', 'Cascadelake-Server,x-force-features=on,check=off,enforce=off,-arch-capabilities')
- vm.launch()
- self.assertFalse(get_cpu_prop(vm, 'arch-capabilities'),
+ """
+ :avocado: tags=machine:pc-i440fx-4.1
+ """
+ self.vm.add_args('-S')
+ self.vm.add_args('-cpu', 'Cascadelake-Server,x-force-features=on,check=off,enforce=off,-arch-capabilities')
+ self.vm.launch()
+ self.assertFalse(self.get_cpu_prop('arch-capabilities'),
'pc-i440fx-4.1 + Cascadelake-Server,-arch-capabilities should not have arch-capabilities')
def test_v1_4_0(self):
+ """
+ :avocado: tags=machine:pc-i440fx-4.0
+ """
# versioned CPU model overrides machine-type:
- vm = self.get_vm()
- vm.add_args('-S')
- vm.set_machine('pc-i440fx-4.0')
- vm.add_args('-cpu', 'Cascadelake-Server-v1,x-force-features=on,check=off,enforce=off')
- vm.launch()
- self.assertFalse(get_cpu_prop(vm, 'arch-capabilities'),
+ self.vm.add_args('-S')
+ self.vm.add_args('-cpu', 'Cascadelake-Server-v1,x-force-features=on,check=off,enforce=off')
+ self.vm.launch()
+ self.assertFalse(self.get_cpu_prop('arch-capabilities'),
'pc-i440fx-4.0 + Cascadelake-Server-v1 should not have arch-capabilities')
def test_v2_4_0(self):
- vm = self.get_vm()
- vm.add_args('-S')
- vm.set_machine('pc-i440fx-4.0')
- vm.add_args('-cpu', 'Cascadelake-Server-v2,x-force-features=on,check=off,enforce=off')
- vm.launch()
- self.assertTrue(get_cpu_prop(vm, 'arch-capabilities'),
- 'pc-i440fx-4.0 + Cascadelake-Server-v2 should have arch-capabilities')
+ """
+ :avocado: tags=machine:pc-i440fx-4.0
+ """
+ self.vm.add_args('-S')
+ self.vm.add_args('-cpu', 'Cascadelake-Server-v2,x-force-features=on,check=off,enforce=off')
+ self.vm.launch()
+ self.assertTrue(self.get_cpu_prop('arch-capabilities'),
+ 'pc-i440fx-4.0 + Cascadelake-Server-v2 should have arch-capabilities')
def test_v1_set_4_0(self):
+ """
+ :avocado: tags=machine:pc-i440fx-4.0
+ """
# command line must override machine-type and versioned CPU model:
- vm = self.get_vm()
- vm.add_args('-S')
- vm.set_machine('pc-i440fx-4.0')
- vm.add_args('-cpu', 'Cascadelake-Server-v1,x-force-features=on,check=off,enforce=off,+arch-capabilities')
- vm.launch()
- self.assertTrue(get_cpu_prop(vm, 'arch-capabilities'),
- 'pc-i440fx-4.0 + Cascadelake-Server-v1,+arch-capabilities should have arch-capabilities')
+ self.vm.add_args('-S')
+ self.vm.add_args('-cpu', 'Cascadelake-Server-v1,x-force-features=on,check=off,enforce=off,+arch-capabilities')
+ self.vm.launch()
+ self.assertTrue(self.get_cpu_prop('arch-capabilities'),
+ 'pc-i440fx-4.0 + Cascadelake-Server-v1,+arch-capabilities should have arch-capabilities')
def test_v2_unset_4_1(self):
- vm = self.get_vm()
- vm.add_args('-S')
- vm.set_machine('pc-i440fx-4.1')
- vm.add_args('-cpu', 'Cascadelake-Server-v2,x-force-features=on,check=off,enforce=off,-arch-capabilities')
- vm.launch()
- self.assertFalse(get_cpu_prop(vm, 'arch-capabilities'),
+ """
+ :avocado: tags=machine:pc-i440fx-4.1
+ """
+ self.vm.add_args('-S')
+ self.vm.add_args('-cpu', 'Cascadelake-Server-v2,x-force-features=on,check=off,enforce=off,-arch-capabilities')
+ self.vm.launch()
+ self.assertFalse(self.get_cpu_prop('arch-capabilities'),
'pc-i440fx-4.1 + Cascadelake-Server-v2,-arch-capabilities should not have arch-capabilities')