xref: /qemu/tests/functional/test_cpu_queries.py (revision cce85725f10fbe92481e8314986e69dbe6ca0dd1)
1*cce85725SThomas Huth#!/usr/bin/env python3
2*cce85725SThomas Huth#
3bb4928c7SEduardo Habkost# Sanity check of query-cpu-* results
4bb4928c7SEduardo Habkost#
5bb4928c7SEduardo Habkost# Copyright (c) 2019 Red Hat, Inc.
6bb4928c7SEduardo Habkost#
7bb4928c7SEduardo Habkost# Author:
8bb4928c7SEduardo Habkost#  Eduardo Habkost <ehabkost@redhat.com>
9bb4928c7SEduardo Habkost#
10bb4928c7SEduardo Habkost# This work is licensed under the terms of the GNU GPL, version 2 or
11bb4928c7SEduardo Habkost# later.  See the COPYING file in the top-level directory.
12bb4928c7SEduardo Habkost
13*cce85725SThomas Huthfrom qemu_test import QemuSystemTest
14bb4928c7SEduardo Habkost
152283b627SPhilippe Mathieu-Daudéclass QueryCPUModelExpansion(QemuSystemTest):
16bb4928c7SEduardo Habkost    """
17bb4928c7SEduardo Habkost    Run query-cpu-model-expansion for each CPU model, and validate results
18bb4928c7SEduardo Habkost    """
19bb4928c7SEduardo Habkost
20bb4928c7SEduardo Habkost    def test(self):
21*cce85725SThomas Huth        self.set_machine('none')
22bb4928c7SEduardo Habkost        self.vm.add_args('-S')
23bb4928c7SEduardo Habkost        self.vm.launch()
24bb4928c7SEduardo Habkost
25684750abSVladimir Sementsov-Ogievskiy        cpus = self.vm.cmd('query-cpu-definitions')
26bb4928c7SEduardo Habkost        for c in cpus:
27c4e2d499SCleber Rosa            self.log.info("Checking CPU: %s", c)
28bb4928c7SEduardo Habkost            self.assertNotIn('', c['unavailable-features'], c['name'])
29bb4928c7SEduardo Habkost
30bb4928c7SEduardo Habkost        for c in cpus:
31bb4928c7SEduardo Habkost            model = {'name': c['name']}
32684750abSVladimir Sementsov-Ogievskiy            e = self.vm.cmd('query-cpu-model-expansion', model=model,
33684750abSVladimir Sementsov-Ogievskiy                            type='full')
34861f724dSThomas Huth            self.assertEqual(e['model']['name'], c['name'])
35*cce85725SThomas Huth
36*cce85725SThomas Huthif __name__ == '__main__':
37*cce85725SThomas Huth    QemuSystemTest.main()
38