From: Michal Privoznik Date: Wed, 20 Sep 2023 16:01:14 +0000 (+0200) Subject: test_driver: Implement virConnectGetDomainCapabilities() X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=e45240d37f52caea8df68823023721edebee76b3;p=libvirt.git test_driver: Implement virConnectGetDomainCapabilities() Our test driver lacks implementation for virConnectGetDomainCapabilities(). Provide one, though a trivial one. Mostly so that something else than VIR_ERR_NO_SUPPORT error is returned. Signed-off-by: Michal Privoznik Reviewed-by: Ján Tomko --- diff --git a/docs/formatdomaincaps.rst b/docs/formatdomaincaps.rst index 0f8015d4dd..ef752a0f3a 100644 --- a/docs/formatdomaincaps.rst +++ b/docs/formatdomaincaps.rst @@ -66,7 +66,8 @@ The root element that emulator capability XML document starts with has name ``path`` - The full path to the emulator binary. + The full path to the emulator binary. Since not every hypervisor has a + notion of emulator binary this element might be omitted in such drivers. ``domain`` Describes the `virtualization type `__ (or so called domain type). diff --git a/src/conf/schemas/domaincaps.rng b/src/conf/schemas/domaincaps.rng index 99ef148d44..e7aa4a1066 100644 --- a/src/conf/schemas/domaincaps.rng +++ b/src/conf/schemas/domaincaps.rng @@ -11,9 +11,11 @@ - - - + + + + + diff --git a/src/test/test_driver.c b/src/test/test_driver.c index c1d4d71b78..c962aa7478 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -10000,6 +10000,41 @@ testNetworkSetMetadata(virNetworkPtr net, return ret; } +static char * +testConnectGetDomainCapabilities(virConnectPtr conn G_GNUC_UNUSED, + const char *emulatorbin, + const char *arch_str, + const char *machine, + const char *virttype_str, + unsigned int flags) +{ + g_autoptr(virDomainCaps) domCaps = NULL; + virArch arch = VIR_ARCH_I686; + int virttype = VIR_DOMAIN_VIRT_TEST; + + virCheckFlags(0, NULL); + + if (arch_str && + (arch = virArchFromString(arch_str)) == VIR_ARCH_NONE) { + virReportError(VIR_ERR_INVALID_ARG, + _("unknown architecture: %1$s"), arch_str); + return NULL; + } + + if (virttype_str && + (virttype = virDomainVirtTypeFromString(virttype_str)) < 0) { + virReportError(VIR_ERR_INVALID_ARG, + _("unknown virttype: %1$s"), virttype_str); + return NULL; + } + + if (!(domCaps = virDomainCapsNew(emulatorbin, machine, arch, virttype))) + return NULL; + + return virDomainCapsFormat(domCaps); +} + + /* * Test driver */ @@ -10167,6 +10202,7 @@ static virHypervisorDriver testHypervisorDriver = { .domainCheckpointGetParent = testDomainCheckpointGetParent, /* 5.6.0 */ .domainCheckpointDelete = testDomainCheckpointDelete, /* 5.6.0 */ .domainGetMessages = testDomainGetMessages, /* 7.6.0 */ + .connectGetDomainCapabilities = testConnectGetDomainCapabilities, /* 9.8.0 */ }; static virNetworkDriver testNetworkDriver = {