tests: default maxmem
This commit is contained in:
parent
b8052f864a
commit
62bc462a23
@ -44,6 +44,22 @@ class TestApp(object):
|
||||
|
||||
def __init__(self):
|
||||
self.domains = {}
|
||||
self.host = unittest.mock.Mock()
|
||||
self.host.memory_total = 4096 * 1024
|
||||
|
||||
class TestFeatures(dict):
|
||||
def __init__(self, vm, **kwargs) -> None:
|
||||
self.vm = vm
|
||||
super().__init__(**kwargs)
|
||||
|
||||
def check_with_template(self, feature, default):
|
||||
vm = self.vm
|
||||
while vm is not None:
|
||||
try:
|
||||
return vm.features[feature]
|
||||
except KeyError:
|
||||
vm = getattr(vm, 'template', None)
|
||||
return default
|
||||
|
||||
class TestProp(object):
|
||||
# pylint: disable=too-few-public-methods
|
||||
@ -80,6 +96,7 @@ class TestVM(object):
|
||||
for k, v in kwargs.items():
|
||||
setattr(self, k, v)
|
||||
self.devices = {'pci': TestDeviceCollection()}
|
||||
self.features = TestFeatures(self)
|
||||
|
||||
def is_running(self):
|
||||
return self.running
|
||||
@ -170,8 +187,6 @@ class TC_10_default(qubes.tests.QubesTestCase):
|
||||
self.assertEqual(default_getter(self.vm), 'template-kernel')
|
||||
|
||||
def test_010_default_virt_mode(self):
|
||||
default_getter = qubes.vm.qubesvm._default_with_template('kernel',
|
||||
lambda x: x.app.default_kernel)
|
||||
self.assertEqual(qubes.vm.qubesvm._default_virt_mode(self.vm),
|
||||
'pvh')
|
||||
self.vm.template = unittest.mock.Mock()
|
||||
@ -185,6 +200,48 @@ class TC_10_default(qubes.tests.QubesTestCase):
|
||||
self.assertEqual(qubes.vm.qubesvm._default_virt_mode(self.vm),
|
||||
'hvm')
|
||||
|
||||
def test_020_default_maxmem(self):
|
||||
default_maxmem = 2048
|
||||
self.vm.is_memory_balancing_possible = \
|
||||
lambda: qubes.vm.qubesvm.QubesVM.is_memory_balancing_possible(
|
||||
self.vm)
|
||||
self.vm.virt_mode = 'pvh'
|
||||
self.assertEqual(qubes.vm.qubesvm._default_maxmem(self.vm),
|
||||
default_maxmem)
|
||||
self.vm.virt_mode = 'hvm'
|
||||
# HVM without qubes tools
|
||||
self.assertEqual(qubes.vm.qubesvm._default_maxmem(self.vm), 0)
|
||||
# just 'qrexec' feature
|
||||
self.vm.features['qrexec'] = True
|
||||
print(self.vm.features.check_with_template('qrexec', False))
|
||||
self.assertEqual(qubes.vm.qubesvm._default_maxmem(self.vm),
|
||||
default_maxmem)
|
||||
# some supported-service.*, but not meminfo-writer
|
||||
self.vm.features['supported-service.qubes-firewall'] = True
|
||||
self.assertEqual(qubes.vm.qubesvm._default_maxmem(self.vm), 0)
|
||||
# then add meminfo-writer
|
||||
self.vm.features['supported-service.meminfo-writer'] = True
|
||||
self.assertEqual(qubes.vm.qubesvm._default_maxmem(self.vm),
|
||||
default_maxmem)
|
||||
|
||||
def test_021_default_maxmem_with_pcidevs(self):
|
||||
self.vm.is_memory_balancing_possible = \
|
||||
lambda: qubes.vm.qubesvm.QubesVM.is_memory_balancing_possible(
|
||||
self.vm)
|
||||
self.vm.devices['pci'].persistent().append('00_00.0')
|
||||
self.assertEqual(qubes.vm.qubesvm._default_maxmem(self.vm), 0)
|
||||
|
||||
def test_022_default_maxmem_linux(self):
|
||||
self.vm.is_memory_balancing_possible = \
|
||||
lambda: qubes.vm.qubesvm.QubesVM.is_memory_balancing_possible(
|
||||
self.vm)
|
||||
self.vm.virt_mode = 'pvh'
|
||||
self.vm.memory = 400
|
||||
self.vm.features['os'] = 'Linux'
|
||||
self.assertEqual(qubes.vm.qubesvm._default_maxmem(self.vm), 2048)
|
||||
self.vm.memory = 100
|
||||
self.assertEqual(qubes.vm.qubesvm._default_maxmem(self.vm), 1000)
|
||||
|
||||
|
||||
class QubesVMTestsMixin(object):
|
||||
property_no_default = object()
|
||||
|
Loading…
Reference in New Issue
Block a user