xref: /qemu/tests/avocado/cpu_queries.py (revision 861f724d)
1bbbd9b6eSWillian Rampazzo# Sanity check of query-cpu-* results
2bbbd9b6eSWillian Rampazzo#
3bbbd9b6eSWillian Rampazzo# Copyright (c) 2019 Red Hat, Inc.
4bbbd9b6eSWillian Rampazzo#
5bbbd9b6eSWillian Rampazzo# Author:
6bbbd9b6eSWillian Rampazzo#  Eduardo Habkost <ehabkost@redhat.com>
7bbbd9b6eSWillian Rampazzo#
8bbbd9b6eSWillian Rampazzo# This work is licensed under the terms of the GNU GPL, version 2 or
9bbbd9b6eSWillian Rampazzo# later.  See the COPYING file in the top-level directory.
10bbbd9b6eSWillian Rampazzo
112283b627SPhilippe Mathieu-Daudéfrom avocado_qemu import QemuSystemTest
12bbbd9b6eSWillian Rampazzo
132283b627SPhilippe Mathieu-Daudéclass QueryCPUModelExpansion(QemuSystemTest):
14bbbd9b6eSWillian Rampazzo    """
15bbbd9b6eSWillian Rampazzo    Run query-cpu-model-expansion for each CPU model, and validate results
16bbbd9b6eSWillian Rampazzo    """
17bbbd9b6eSWillian Rampazzo
18bbbd9b6eSWillian Rampazzo    def test(self):
19bbbd9b6eSWillian Rampazzo        """
20bbbd9b6eSWillian Rampazzo        :avocado: tags=arch:x86_64
21bbbd9b6eSWillian Rampazzo        :avocado: tags=machine:none
22bbbd9b6eSWillian Rampazzo        """
23bbbd9b6eSWillian Rampazzo        self.vm.add_args('-S')
24bbbd9b6eSWillian Rampazzo        self.vm.launch()
25bbbd9b6eSWillian Rampazzo
26684750abSVladimir Sementsov-Ogievskiy        cpus = self.vm.cmd('query-cpu-definitions')
27bbbd9b6eSWillian Rampazzo        for c in cpus:
28bbbd9b6eSWillian Rampazzo            self.log.info("Checking CPU: %s", c)
29bbbd9b6eSWillian Rampazzo            self.assertNotIn('', c['unavailable-features'], c['name'])
30bbbd9b6eSWillian Rampazzo
31bbbd9b6eSWillian Rampazzo        for c in cpus:
32bbbd9b6eSWillian Rampazzo            model = {'name': c['name']}
33684750abSVladimir Sementsov-Ogievskiy            e = self.vm.cmd('query-cpu-model-expansion', model=model,
34684750abSVladimir Sementsov-Ogievskiy                            type='full')
35861f724dSThomas Huth            self.assertEqual(e['model']['name'], c['name'])
36