domaincapabilities: Finish test coverage
Signed-off-by: Cole Robinson <crobinso@redhat.com>
This commit is contained in:
parent
dcab14e0b4
commit
c64009ecdd
|
@ -91,3 +91,17 @@ class TestCapabilities(unittest.TestCase):
|
||||||
cpu_model = custom_mode.get_model("Opteron_G4")
|
cpu_model = custom_mode.get_model("Opteron_G4")
|
||||||
self.assertTrue(bool(cpu_model))
|
self.assertTrue(bool(cpu_model))
|
||||||
self.assertTrue(cpu_model.usable)
|
self.assertTrue(cpu_model.usable)
|
||||||
|
|
||||||
|
models = caps.get_cpu_models()
|
||||||
|
assert len(models) > 10
|
||||||
|
assert "SandyBridge" in models
|
||||||
|
|
||||||
|
assert caps.label_for_firmware_path(None) == "BIOS"
|
||||||
|
assert "Custom:" in caps.label_for_firmware_path("/foobar")
|
||||||
|
assert "UEFI" in caps.label_for_firmware_path("OVMF")
|
||||||
|
|
||||||
|
def testDomainCapabilitiesAArch64(self):
|
||||||
|
xml = open(DATADIR + "/kvm-aarch64-domcaps.xml").read()
|
||||||
|
caps = DomainCapabilities(utils.URIs.open_testdriver_cached(), xml)
|
||||||
|
|
||||||
|
assert "None" in caps.label_for_firmware_path(None)
|
||||||
|
|
|
@ -158,7 +158,7 @@ class DomainCapabilities(XMLBuilder):
|
||||||
try:
|
try:
|
||||||
xml = conn.getDomainCapabilities(emulator, arch,
|
xml = conn.getDomainCapabilities(emulator, arch,
|
||||||
machine, hvtype)
|
machine, hvtype)
|
||||||
except Exception:
|
except Exception: # pragma: no cover
|
||||||
log.debug("Error fetching domcapabilities XML",
|
log.debug("Error fetching domcapabilities XML",
|
||||||
exc_info=True)
|
exc_info=True)
|
||||||
|
|
||||||
|
@ -204,7 +204,7 @@ class DomainCapabilities(XMLBuilder):
|
||||||
Search the loader paths for one that matches the passed arch
|
Search the loader paths for one that matches the passed arch
|
||||||
"""
|
"""
|
||||||
if not self.arch_can_uefi():
|
if not self.arch_can_uefi():
|
||||||
return
|
return # pragma: no cover
|
||||||
|
|
||||||
patterns = self._uefi_arch_patterns.get(self.arch)
|
patterns = self._uefi_arch_patterns.get(self.arch)
|
||||||
for pattern in patterns:
|
for pattern in patterns:
|
||||||
|
@ -288,9 +288,8 @@ class DomainCapabilities(XMLBuilder):
|
||||||
|
|
||||||
return DomainCpu(self.conn, expandedXML)
|
return DomainCpu(self.conn, expandedXML)
|
||||||
|
|
||||||
_features = None
|
def _lookup_cpu_security_features(self):
|
||||||
|
ret = []
|
||||||
def get_cpu_security_features(self):
|
|
||||||
sec_features = [
|
sec_features = [
|
||||||
'spec-ctrl',
|
'spec-ctrl',
|
||||||
'ssbd',
|
'ssbd',
|
||||||
|
@ -298,28 +297,30 @@ class DomainCapabilities(XMLBuilder):
|
||||||
'virt-ssbd',
|
'virt-ssbd',
|
||||||
'md-clear']
|
'md-clear']
|
||||||
|
|
||||||
if self._features is not None:
|
|
||||||
return self._features
|
|
||||||
|
|
||||||
self._features = []
|
|
||||||
|
|
||||||
for m in self.cpu.modes:
|
for m in self.cpu.modes:
|
||||||
if m.name != "host-model" or not m.supported:
|
if m.name != "host-model" or not m.supported:
|
||||||
continue
|
continue # pragma: no cover
|
||||||
|
|
||||||
try:
|
try:
|
||||||
cpu = self._get_expanded_cpu(m)
|
cpu = self._get_expanded_cpu(m)
|
||||||
except libvirt.libvirtError as e:
|
except libvirt.libvirtError as e: # pragma: no cover
|
||||||
log.warning(_("Failed to get expanded CPU XML: %s"), e)
|
log.warning(_("Failed to get expanded CPU XML: %s"), e)
|
||||||
break
|
break
|
||||||
|
|
||||||
for feature in cpu.features:
|
for feature in cpu.features:
|
||||||
if feature.name in sec_features:
|
if feature.name in sec_features:
|
||||||
self._features.append(feature.name)
|
ret.append(feature.name)
|
||||||
|
|
||||||
log.debug("Found host-model security features: %s", self._features)
|
log.debug("Found host-model security features: %s", ret)
|
||||||
|
return ret
|
||||||
|
|
||||||
|
_features = None
|
||||||
|
def get_cpu_security_features(self):
|
||||||
|
if self._features is None:
|
||||||
|
self._features = self._lookup_cpu_security_features() or []
|
||||||
return self._features
|
return self._features
|
||||||
|
|
||||||
|
|
||||||
def supports_sev_launch_security(self):
|
def supports_sev_launch_security(self):
|
||||||
"""
|
"""
|
||||||
Returns False if either libvirt doesn't advertise support for SEV at
|
Returns False if either libvirt doesn't advertise support for SEV at
|
||||||
|
|
Loading…
Reference in New Issue