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/qtest/test-x86-cpuid-compat.c
|
||||||
F: tests/functional/test_mem_addr_space.py
|
F: tests/functional/test_mem_addr_space.py
|
||||||
F: tests/functional/test_pc_cpu_hotplug_props.py
|
F: tests/functional/test_pc_cpu_hotplug_props.py
|
||||||
|
F: tests/functional/test_x86_cpu_model_versions.py
|
||||||
|
|
||||||
PC Chipset
|
PC Chipset
|
||||||
M: Michael S. Tsirkin <mst@redhat.com>
|
M: Michael S. Tsirkin <mst@redhat.com>
|
||||||
|
@ -66,6 +66,7 @@ tests_x86_64_system_quick = [
|
|||||||
'mem_addr_space',
|
'mem_addr_space',
|
||||||
'pc_cpu_hotplug_props',
|
'pc_cpu_hotplug_props',
|
||||||
'virtio_version',
|
'virtio_version',
|
||||||
|
'x86_cpu_model_versions',
|
||||||
]
|
]
|
||||||
|
|
||||||
tests_x86_64_system_thorough = [
|
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
|
# 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/>.
|
# License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
import avocado_qemu
|
|
||||||
import re
|
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
|
Validation of PC CPU model versions and CPU model aliases
|
||||||
|
|
||||||
:avocado: tags=arch:x86_64
|
|
||||||
"""
|
"""
|
||||||
def validate_aliases(self, cpus):
|
def validate_aliases(self, cpus):
|
||||||
for c in cpus.values():
|
for c in cpus.values():
|
||||||
@ -76,9 +75,8 @@ class X86CPUModelAliases(avocado_qemu.QemuSystemTest):
|
|||||||
def test_4_0_alias_compatibility(self):
|
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
|
|
||||||
"""
|
"""
|
||||||
|
self.set_machine('pc-i440fx-4.0')
|
||||||
# pc-*-4.0 won't expose non-versioned CPU models as aliases
|
# pc-*-4.0 won't expose non-versioned CPU models as aliases
|
||||||
# We do this to help management software to keep compatibility
|
# We do this to help management software to keep compatibility
|
||||||
# with older QEMU versions that didn't have the versioned CPU model
|
# 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):
|
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.set_machine('pc-i440fx-4.1')
|
||||||
self.vm.add_args('-S')
|
self.vm.add_args('-S')
|
||||||
self.vm.launch()
|
self.vm.launch()
|
||||||
|
|
||||||
@ -217,9 +214,8 @@ class X86CPUModelAliases(avocado_qemu.QemuSystemTest):
|
|||||||
def test_none_alias(self):
|
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.set_machine('none')
|
||||||
self.vm.add_args('-S')
|
self.vm.add_args('-S')
|
||||||
self.vm.launch()
|
self.vm.launch()
|
||||||
|
|
||||||
@ -243,21 +239,16 @@ class X86CPUModelAliases(avocado_qemu.QemuSystemTest):
|
|||||||
self.validate_aliases(cpus)
|
self.validate_aliases(cpus)
|
||||||
|
|
||||||
|
|
||||||
class CascadelakeArchCapabilities(avocado_qemu.QemuSystemTest):
|
class CascadelakeArchCapabilities(QemuSystemTest):
|
||||||
"""
|
"""
|
||||||
Validation of Cascadelake arch-capabilities
|
Validation of Cascadelake arch-capabilities
|
||||||
|
|
||||||
:avocado: tags=arch:x86_64
|
|
||||||
"""
|
"""
|
||||||
def get_cpu_prop(self, prop):
|
def get_cpu_prop(self, prop):
|
||||||
cpu_path = self.vm.cmd('query-cpus-fast')[0].get('qom-path')
|
cpu_path = self.vm.cmd('query-cpus-fast')[0].get('qom-path')
|
||||||
return self.vm.cmd('qom-get', path=cpu_path, property=prop)
|
return self.vm.cmd('qom-get', path=cpu_path, property=prop)
|
||||||
|
|
||||||
def test_4_1(self):
|
def test_4_1(self):
|
||||||
"""
|
self.set_machine('pc-i440fx-4.1')
|
||||||
:avocado: tags=machine:pc-i440fx-4.1
|
|
||||||
:avocado: tags=cpu:Cascadelake-Server
|
|
||||||
"""
|
|
||||||
# machine-type only:
|
# machine-type only:
|
||||||
self.vm.add_args('-S')
|
self.vm.add_args('-S')
|
||||||
self.set_vm_arg('-cpu',
|
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')
|
'pc-i440fx-4.1 + Cascadelake-Server should not have arch-capabilities')
|
||||||
|
|
||||||
def test_4_0(self):
|
def test_4_0(self):
|
||||||
"""
|
self.set_machine('pc-i440fx-4.0')
|
||||||
:avocado: tags=machine:pc-i440fx-4.0
|
|
||||||
:avocado: tags=cpu:Cascadelake-Server
|
|
||||||
"""
|
|
||||||
self.vm.add_args('-S')
|
self.vm.add_args('-S')
|
||||||
self.set_vm_arg('-cpu',
|
self.set_vm_arg('-cpu',
|
||||||
'Cascadelake-Server,x-force-features=on,check=off,'
|
'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')
|
'pc-i440fx-4.0 + Cascadelake-Server should not have arch-capabilities')
|
||||||
|
|
||||||
def test_set_4_0(self):
|
def test_set_4_0(self):
|
||||||
"""
|
self.set_machine('pc-i440fx-4.0')
|
||||||
:avocado: tags=machine:pc-i440fx-4.0
|
|
||||||
:avocado: tags=cpu:Cascadelake-Server
|
|
||||||
"""
|
|
||||||
# command line must override machine-type if CPU model is not versioned:
|
# command line must override machine-type if CPU model is not versioned:
|
||||||
self.vm.add_args('-S')
|
self.vm.add_args('-S')
|
||||||
self.set_vm_arg('-cpu',
|
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')
|
'pc-i440fx-4.0 + Cascadelake-Server,+arch-capabilities should have arch-capabilities')
|
||||||
|
|
||||||
def test_unset_4_1(self):
|
def test_unset_4_1(self):
|
||||||
"""
|
self.set_machine('pc-i440fx-4.1')
|
||||||
:avocado: tags=machine:pc-i440fx-4.1
|
|
||||||
:avocado: tags=cpu:Cascadelake-Server
|
|
||||||
"""
|
|
||||||
self.vm.add_args('-S')
|
self.vm.add_args('-S')
|
||||||
self.set_vm_arg('-cpu',
|
self.set_vm_arg('-cpu',
|
||||||
'Cascadelake-Server,x-force-features=on,check=off,'
|
'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')
|
'pc-i440fx-4.1 + Cascadelake-Server,-arch-capabilities should not have arch-capabilities')
|
||||||
|
|
||||||
def test_v1_4_0(self):
|
def test_v1_4_0(self):
|
||||||
"""
|
self.set_machine('pc-i440fx-4.0')
|
||||||
:avocado: tags=machine:pc-i440fx-4.0
|
|
||||||
:avocado: tags=cpu:Cascadelake-Server
|
|
||||||
"""
|
|
||||||
# versioned CPU model overrides machine-type:
|
# versioned CPU model overrides machine-type:
|
||||||
self.vm.add_args('-S')
|
self.vm.add_args('-S')
|
||||||
self.set_vm_arg('-cpu',
|
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')
|
'pc-i440fx-4.0 + Cascadelake-Server-v1 should not have arch-capabilities')
|
||||||
|
|
||||||
def test_v2_4_0(self):
|
def test_v2_4_0(self):
|
||||||
"""
|
self.set_machine('pc-i440fx-4.0')
|
||||||
:avocado: tags=machine:pc-i440fx-4.0
|
|
||||||
:avocado: tags=cpu:Cascadelake-Server
|
|
||||||
"""
|
|
||||||
self.vm.add_args('-S')
|
self.vm.add_args('-S')
|
||||||
self.set_vm_arg('-cpu',
|
self.set_vm_arg('-cpu',
|
||||||
'Cascadelake-Server-v2,x-force-features=on,check=off,'
|
'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')
|
'pc-i440fx-4.0 + Cascadelake-Server-v2 should have arch-capabilities')
|
||||||
|
|
||||||
def test_v1_set_4_0(self):
|
def test_v1_set_4_0(self):
|
||||||
"""
|
self.set_machine('pc-i440fx-4.0')
|
||||||
:avocado: tags=machine:pc-i440fx-4.0
|
|
||||||
:avocado: tags=cpu:Cascadelake-Server
|
|
||||||
"""
|
|
||||||
# command line must override machine-type and versioned CPU model:
|
# command line must override machine-type and versioned CPU model:
|
||||||
self.vm.add_args('-S')
|
self.vm.add_args('-S')
|
||||||
self.set_vm_arg('-cpu',
|
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')
|
'pc-i440fx-4.0 + Cascadelake-Server-v1,+arch-capabilities should have arch-capabilities')
|
||||||
|
|
||||||
def test_v2_unset_4_1(self):
|
def test_v2_unset_4_1(self):
|
||||||
"""
|
self.set_machine('pc-i440fx-4.1')
|
||||||
:avocado: tags=machine:pc-i440fx-4.1
|
|
||||||
:avocado: tags=cpu:Cascadelake-Server
|
|
||||||
"""
|
|
||||||
self.vm.add_args('-S')
|
self.vm.add_args('-S')
|
||||||
self.set_vm_arg('-cpu',
|
self.set_vm_arg('-cpu',
|
||||||
'Cascadelake-Server-v2,x-force-features=on,check=off,'
|
'Cascadelake-Server-v2,x-force-features=on,check=off,'
|
||||||
@ -360,3 +330,6 @@ class CascadelakeArchCapabilities(avocado_qemu.QemuSystemTest):
|
|||||||
self.vm.launch()
|
self.vm.launch()
|
||||||
self.assertFalse(self.get_cpu_prop('arch-capabilities'),
|
self.assertFalse(self.get_cpu_prop('arch-capabilities'),
|
||||||
'pc-i440fx-4.1 + Cascadelake-Server-v2,-arch-capabilities should not have arch-capabilities')
|
'pc-i440fx-4.1 + Cascadelake-Server-v2,-arch-capabilities should not have arch-capabilities')
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
QemuSystemTest.main()
|
Loading…
x
Reference in New Issue
Block a user