tests/functional: Convert the x86_cpu_model_versions test
Nothing thrilling in here, it's just a straight forward conversion. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-ID: <20240830133841.142644-22-thuth@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
parent
e2e9fd256e
commit
be849ef715
@ -1836,6 +1836,7 @@ F: tests/unit/test-x86-topo.c
|
||||
F: tests/qtest/test-x86-cpuid-compat.c
|
||||
F: tests/functional/test_mem_addr_space.py
|
||||
F: tests/functional/test_pc_cpu_hotplug_props.py
|
||||
F: tests/functional/test_x86_cpu_model_versions.py
|
||||
|
||||
PC Chipset
|
||||
M: Michael S. Tsirkin <mst@redhat.com>
|
||||
|
@ -66,6 +66,7 @@ tests_x86_64_system_quick = [
|
||||
'mem_addr_space',
|
||||
'pc_cpu_hotplug_props',
|
||||
'virtio_version',
|
||||
'x86_cpu_model_versions',
|
||||
]
|
||||
|
||||
tests_x86_64_system_thorough = [
|
||||
|
65
tests/avocado/x86_cpu_model_versions.py → tests/functional/test_x86_cpu_model_versions.py
Normal file → Executable file
65
tests/avocado/x86_cpu_model_versions.py → tests/functional/test_x86_cpu_model_versions.py
Normal file → Executable file
@ -1,3 +1,4 @@
|
||||
#!/usr/bin/env python3
|
||||
#
|
||||
# Basic validation of x86 versioned CPU models and CPU model aliases
|
||||
#
|
||||
@ -20,15 +21,13 @@
|
||||
# License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
|
||||
import avocado_qemu
|
||||
import re
|
||||
|
||||
class X86CPUModelAliases(avocado_qemu.QemuSystemTest):
|
||||
from qemu_test import QemuSystemTest
|
||||
|
||||
class X86CPUModelAliases(QemuSystemTest):
|
||||
"""
|
||||
Validation of PC CPU model versions and CPU model aliases
|
||||
|
||||
:avocado: tags=arch:x86_64
|
||||
"""
|
||||
def validate_aliases(self, cpus):
|
||||
for c in cpus.values():
|
||||
@ -76,9 +75,8 @@ class X86CPUModelAliases(avocado_qemu.QemuSystemTest):
|
||||
def test_4_0_alias_compatibility(self):
|
||||
"""
|
||||
Check if pc-*-4.0 unversioned CPU model won't be reported as aliases
|
||||
|
||||
:avocado: tags=machine:pc-i440fx-4.0
|
||||
"""
|
||||
self.set_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
|
||||
@ -110,9 +108,8 @@ class X86CPUModelAliases(avocado_qemu.QemuSystemTest):
|
||||
def test_4_1_alias(self):
|
||||
"""
|
||||
Check if unversioned CPU model is an alias pointing to right version
|
||||
|
||||
:avocado: tags=machine:pc-i440fx-4.1
|
||||
"""
|
||||
self.set_machine('pc-i440fx-4.1')
|
||||
self.vm.add_args('-S')
|
||||
self.vm.launch()
|
||||
|
||||
@ -217,9 +214,8 @@ class X86CPUModelAliases(avocado_qemu.QemuSystemTest):
|
||||
def test_none_alias(self):
|
||||
"""
|
||||
Check if unversioned CPU model is an alias pointing to some version
|
||||
|
||||
:avocado: tags=machine:none
|
||||
"""
|
||||
self.set_machine('none')
|
||||
self.vm.add_args('-S')
|
||||
self.vm.launch()
|
||||
|
||||
@ -243,21 +239,16 @@ class X86CPUModelAliases(avocado_qemu.QemuSystemTest):
|
||||
self.validate_aliases(cpus)
|
||||
|
||||
|
||||
class CascadelakeArchCapabilities(avocado_qemu.QemuSystemTest):
|
||||
class CascadelakeArchCapabilities(QemuSystemTest):
|
||||
"""
|
||||
Validation of Cascadelake arch-capabilities
|
||||
|
||||
:avocado: tags=arch:x86_64
|
||||
"""
|
||||
def get_cpu_prop(self, prop):
|
||||
cpu_path = self.vm.cmd('query-cpus-fast')[0].get('qom-path')
|
||||
return self.vm.cmd('qom-get', path=cpu_path, property=prop)
|
||||
|
||||
def test_4_1(self):
|
||||
"""
|
||||
:avocado: tags=machine:pc-i440fx-4.1
|
||||
:avocado: tags=cpu:Cascadelake-Server
|
||||
"""
|
||||
self.set_machine('pc-i440fx-4.1')
|
||||
# machine-type only:
|
||||
self.vm.add_args('-S')
|
||||
self.set_vm_arg('-cpu',
|
||||
@ -268,10 +259,7 @@ class CascadelakeArchCapabilities(avocado_qemu.QemuSystemTest):
|
||||
'pc-i440fx-4.1 + Cascadelake-Server should not have arch-capabilities')
|
||||
|
||||
def test_4_0(self):
|
||||
"""
|
||||
:avocado: tags=machine:pc-i440fx-4.0
|
||||
:avocado: tags=cpu:Cascadelake-Server
|
||||
"""
|
||||
self.set_machine('pc-i440fx-4.0')
|
||||
self.vm.add_args('-S')
|
||||
self.set_vm_arg('-cpu',
|
||||
'Cascadelake-Server,x-force-features=on,check=off,'
|
||||
@ -281,10 +269,7 @@ class CascadelakeArchCapabilities(avocado_qemu.QemuSystemTest):
|
||||
'pc-i440fx-4.0 + Cascadelake-Server should not have arch-capabilities')
|
||||
|
||||
def test_set_4_0(self):
|
||||
"""
|
||||
:avocado: tags=machine:pc-i440fx-4.0
|
||||
:avocado: tags=cpu:Cascadelake-Server
|
||||
"""
|
||||
self.set_machine('pc-i440fx-4.0')
|
||||
# command line must override machine-type if CPU model is not versioned:
|
||||
self.vm.add_args('-S')
|
||||
self.set_vm_arg('-cpu',
|
||||
@ -295,10 +280,7 @@ class CascadelakeArchCapabilities(avocado_qemu.QemuSystemTest):
|
||||
'pc-i440fx-4.0 + Cascadelake-Server,+arch-capabilities should have arch-capabilities')
|
||||
|
||||
def test_unset_4_1(self):
|
||||
"""
|
||||
:avocado: tags=machine:pc-i440fx-4.1
|
||||
:avocado: tags=cpu:Cascadelake-Server
|
||||
"""
|
||||
self.set_machine('pc-i440fx-4.1')
|
||||
self.vm.add_args('-S')
|
||||
self.set_vm_arg('-cpu',
|
||||
'Cascadelake-Server,x-force-features=on,check=off,'
|
||||
@ -308,10 +290,7 @@ class CascadelakeArchCapabilities(avocado_qemu.QemuSystemTest):
|
||||
'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
|
||||
:avocado: tags=cpu:Cascadelake-Server
|
||||
"""
|
||||
self.set_machine('pc-i440fx-4.0')
|
||||
# versioned CPU model overrides machine-type:
|
||||
self.vm.add_args('-S')
|
||||
self.set_vm_arg('-cpu',
|
||||
@ -322,10 +301,7 @@ class CascadelakeArchCapabilities(avocado_qemu.QemuSystemTest):
|
||||
'pc-i440fx-4.0 + Cascadelake-Server-v1 should not have arch-capabilities')
|
||||
|
||||
def test_v2_4_0(self):
|
||||
"""
|
||||
:avocado: tags=machine:pc-i440fx-4.0
|
||||
:avocado: tags=cpu:Cascadelake-Server
|
||||
"""
|
||||
self.set_machine('pc-i440fx-4.0')
|
||||
self.vm.add_args('-S')
|
||||
self.set_vm_arg('-cpu',
|
||||
'Cascadelake-Server-v2,x-force-features=on,check=off,'
|
||||
@ -335,10 +311,7 @@ class CascadelakeArchCapabilities(avocado_qemu.QemuSystemTest):
|
||||
'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
|
||||
:avocado: tags=cpu:Cascadelake-Server
|
||||
"""
|
||||
self.set_machine('pc-i440fx-4.0')
|
||||
# command line must override machine-type and versioned CPU model:
|
||||
self.vm.add_args('-S')
|
||||
self.set_vm_arg('-cpu',
|
||||
@ -349,10 +322,7 @@ class CascadelakeArchCapabilities(avocado_qemu.QemuSystemTest):
|
||||
'pc-i440fx-4.0 + Cascadelake-Server-v1,+arch-capabilities should have arch-capabilities')
|
||||
|
||||
def test_v2_unset_4_1(self):
|
||||
"""
|
||||
:avocado: tags=machine:pc-i440fx-4.1
|
||||
:avocado: tags=cpu:Cascadelake-Server
|
||||
"""
|
||||
self.set_machine('pc-i440fx-4.1')
|
||||
self.vm.add_args('-S')
|
||||
self.set_vm_arg('-cpu',
|
||||
'Cascadelake-Server-v2,x-force-features=on,check=off,'
|
||||
@ -360,3 +330,6 @@ class CascadelakeArchCapabilities(avocado_qemu.QemuSystemTest):
|
||||
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')
|
||||
|
||||
if __name__ == '__main__':
|
||||
QemuSystemTest.main()
|
Loading…
Reference in New Issue
Block a user