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