This test takes care to check the changes on different entitlements when the guest requests a polarization change. Signed-off-by: Pierre Morel <pmorel@xxxxxxxxxxxxx> --- tests/avocado/s390_topology.py | 47 ++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/tests/avocado/s390_topology.py b/tests/avocado/s390_topology.py index 2cf731cb1d..4855e5d7e4 100644 --- a/tests/avocado/s390_topology.py +++ b/tests/avocado/s390_topology.py @@ -240,3 +240,50 @@ def test_polarisation(self): res = self.vm.qmp('query-cpu-polarization') self.assertEqual(res['return']['polarization'], 'horizontal') self.check_topology(0, 0, 0, 0, 'medium', False) + + def test_entitlement(self): + """ + This test verifies that QEMU modifies the polarization + after a guest request. + + :avocado: tags=arch:s390x + :avocado: tags=machine:s390-ccw-virtio + """ + self.kernel_init() + self.vm.add_args('-smp', + '4,drawers=2,books=2,sockets=3,cores=2,maxcpus=24') + self.vm.launch() + self.wait_until_booted() + + self.system_init() + + res = self.vm.qmp('set-cpu-topology', + {'core-id': 0, 'entitlement': 'low'}) + self.assertEqual(res['return'], {}) + res = self.vm.qmp('set-cpu-topology', + {'core-id': 1, 'entitlement': 'medium'}) + self.assertEqual(res['return'], {}) + res = self.vm.qmp('set-cpu-topology', + {'core-id': 2, 'entitlement': 'high'}) + self.assertEqual(res['return'], {}) + res = self.vm.qmp('set-cpu-topology', + {'core-id': 3, 'entitlement': 'high'}) + self.assertEqual(res['return'], {}) + self.check_topology(0, 0, 0, 0, 'low', False) + self.check_topology(1, 0, 0, 0, 'medium', False) + self.check_topology(2, 1, 0, 0, 'high', False) + self.check_topology(3, 1, 0, 0, 'high', False) + + self.guest_set_dispatching('1'); + + self.check_topology(0, 0, 0, 0, 'low', False) + self.check_topology(1, 0, 0, 0, 'medium', False) + self.check_topology(2, 1, 0, 0, 'high', False) + self.check_topology(3, 1, 0, 0, 'high', False) + + self.guest_set_dispatching('0'); + + self.check_topology(0, 0, 0, 0, 'low', False) + self.check_topology(1, 0, 0, 0, 'medium', False) + self.check_topology(2, 1, 0, 0, 'high', False) + self.check_topology(3, 1, 0, 0, 'high', False) -- 2.31.1