[libvirt] [PATCH v2 0/3] store binary name in capabilities

It is helpful for debugging to have the binary name in the capabilities XML Daniel P. Berrangé (3): qemu: add explicit flag to skip qemu caps invalidation qemu: add qemu caps constructor which takes binary name qemu: store the emulator name in the capabilities XML src/qemu/qemu_capabilities.c | 52 +++++++++++++++---- src/qemu/qemu_capabilities.h | 4 ++ .../caps_1.5.3.x86_64.xml | 1 + .../caps_1.6.0.x86_64.xml | 1 + .../caps_1.7.0.x86_64.xml | 1 + .../caps_2.1.1.x86_64.xml | 1 + .../caps_2.10.0.aarch64.xml | 1 + .../caps_2.10.0.ppc64.xml | 1 + .../caps_2.10.0.s390x.xml | 1 + .../caps_2.10.0.x86_64.xml | 1 + .../caps_2.11.0.s390x.xml | 1 + .../caps_2.11.0.x86_64.xml | 1 + .../caps_2.12.0.aarch64.xml | 1 + .../caps_2.12.0.ppc64.xml | 1 + .../caps_2.12.0.s390x.xml | 1 + .../caps_2.12.0.x86_64.xml | 1 + .../caps_2.4.0.x86_64.xml | 1 + .../caps_2.5.0.x86_64.xml | 1 + .../caps_2.6.0.aarch64.xml | 1 + .../qemucapabilitiesdata/caps_2.6.0.ppc64.xml | 1 + .../caps_2.6.0.x86_64.xml | 1 + .../qemucapabilitiesdata/caps_2.7.0.s390x.xml | 1 + .../caps_2.7.0.x86_64.xml | 1 + .../qemucapabilitiesdata/caps_2.8.0.s390x.xml | 1 + .../caps_2.8.0.x86_64.xml | 1 + .../qemucapabilitiesdata/caps_2.9.0.ppc64.xml | 1 + .../qemucapabilitiesdata/caps_2.9.0.s390x.xml | 1 + .../caps_2.9.0.x86_64.xml | 1 + .../qemucapabilitiesdata/caps_3.0.0.ppc64.xml | 1 + .../caps_3.0.0.riscv32.xml | 1 + .../caps_3.0.0.riscv64.xml | 1 + .../qemucapabilitiesdata/caps_3.0.0.s390x.xml | 1 + .../caps_3.0.0.x86_64.xml | 1 + .../qemucapabilitiesdata/caps_3.1.0.ppc64.xml | 1 + .../caps_3.1.0.x86_64.xml | 1 + .../caps_4.0.0.aarch64.xml | 1 + .../qemucapabilitiesdata/caps_4.0.0.ppc64.xml | 1 + .../caps_4.0.0.riscv32.xml | 1 + .../caps_4.0.0.riscv64.xml | 1 + .../qemucapabilitiesdata/caps_4.0.0.s390x.xml | 1 + .../caps_4.0.0.x86_64.xml | 1 + .../caps_4.1.0.x86_64.xml | 1 + .../caps_4.2.0.aarch64.xml | 1 + .../qemucapabilitiesdata/caps_4.2.0.ppc64.xml | 1 + .../qemucapabilitiesdata/caps_4.2.0.s390x.xml | 1 + .../caps_4.2.0.x86_64.xml | 1 + tests/qemucapabilitiestest.c | 7 ++- tests/testutilsqemu.c | 5 +- 48 files changed, 101 insertions(+), 11 deletions(-) -- 2.23.0

Currently if the binary path is NULL in the qemu capabilities object, cache invalidation is skipped. A future patch will ensure that the binary path is always non-NULL, so a way to explicitly skip invalidation is required. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- src/qemu/qemu_capabilities.c | 14 ++++++++++++++ src/qemu/qemu_capabilities.h | 3 +++ 2 files changed, 17 insertions(+) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 2223589058..cc6d9bbd44 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -612,6 +612,7 @@ struct _virQEMUCaps { char *binary; time_t ctime; time_t libvirtCtime; + bool invalidation; virBitmapPtr flags; @@ -1633,6 +1634,7 @@ virQEMUCapsNew(void) if (!(qemuCaps = virObjectNew(virQEMUCapsClass))) return NULL; + qemuCaps->invalidation = true; if (!(qemuCaps->flags = virBitmapNew(QEMU_CAPS_LAST))) goto error; @@ -1647,6 +1649,14 @@ virQEMUCapsNew(void) } +void +virQEMUCapsSetInvalidation(virQEMUCapsPtr qemuCaps, + bool enabled) +{ + qemuCaps->invalidation = enabled; +} + + static int virQEMUCapsHostCPUDataCopy(virQEMUCapsHostCPUDataPtr dst, virQEMUCapsHostCPUDataPtr src) @@ -1746,6 +1756,7 @@ virQEMUCapsPtr virQEMUCapsNewCopy(virQEMUCapsPtr qemuCaps) if (!ret) return NULL; + ret->invalidation = qemuCaps->invalidation; ret->usedQMP = qemuCaps->usedQMP; ret->kvmSupportsNesting = qemuCaps->kvmSupportsNesting; @@ -4423,6 +4434,9 @@ virQEMUCapsIsValid(void *data, struct stat sb; bool kvmSupportsNesting; + if (!qemuCaps->invalidation) + return true; + if (!qemuCaps->binary) return true; diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 1b2522126c..7488b9ddb8 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -545,6 +545,9 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(virQEMUCaps, virObjectUnref); virQEMUCapsPtr virQEMUCapsNew(void); +void virQEMUCapsSetInvalidation(virQEMUCapsPtr qemuCaps, + bool enabled); + void virQEMUCapsSet(virQEMUCapsPtr qemuCaps, virQEMUCapsFlags flag) ATTRIBUTE_NONNULL(1); -- 2.23.0

On 12/20/19 2:47 PM, Daniel P. Berrangé wrote:
Currently if the binary path is NULL in the qemu capabilities object, cache invalidation is skipped. A future patch will ensure that the binary path is always non-NULL, so a way to explicitly skip invalidation is required.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- src/qemu/qemu_capabilities.c | 14 ++++++++++++++ src/qemu/qemu_capabilities.h | 3 +++ 2 files changed, 17 insertions(+)
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 1b2522126c..7488b9ddb8 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -545,6 +545,9 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(virQEMUCaps, virObjectUnref);
virQEMUCapsPtr virQEMUCapsNew(void);
+void virQEMUCapsSetInvalidation(virQEMUCapsPtr qemuCaps, + bool enabled); +
Since this function is intended to be used from tests only, I guess it can be moved to src/qemu/qemu_capspriv.h so we are not tempted to use it from real code. Michal

Simplify repeated code patterns by providing a new constructor taking the QEMU binary name. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- src/qemu/qemu_capabilities.c | 23 ++++++++++++++--------- src/qemu/qemu_capabilities.h | 1 + 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index cc6d9bbd44..2ab7ead92e 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -1649,6 +1649,17 @@ virQEMUCapsNew(void) } +virQEMUCapsPtr +virQEMUCapsNewBinary(const char *binary) +{ + virQEMUCapsPtr qemuCaps = virQEMUCapsNew(); + + qemuCaps->binary = g_strdup(binary); + + return qemuCaps; +} + + void virQEMUCapsSetInvalidation(virQEMUCapsPtr qemuCaps, bool enabled) @@ -1750,7 +1761,7 @@ virQEMUCapsAccelCopy(virQEMUCapsAccelPtr dst, virQEMUCapsPtr virQEMUCapsNewCopy(virQEMUCapsPtr qemuCaps) { - virQEMUCapsPtr ret = virQEMUCapsNew(); + virQEMUCapsPtr ret = virQEMUCapsNewBinary(qemuCaps->binary); size_t i; if (!ret) @@ -1760,8 +1771,6 @@ virQEMUCapsPtr virQEMUCapsNewCopy(virQEMUCapsPtr qemuCaps) ret->usedQMP = qemuCaps->usedQMP; ret->kvmSupportsNesting = qemuCaps->kvmSupportsNesting; - ret->binary = g_strdup(qemuCaps->binary); - ret->ctime = qemuCaps->ctime; virBitmapCopy(ret->flags, qemuCaps->flags); @@ -4950,11 +4959,9 @@ virQEMUCapsNewForBinaryInternal(virArch hostArch, virQEMUCapsPtr qemuCaps; struct stat sb; - if (!(qemuCaps = virQEMUCapsNew())) + if (!(qemuCaps = virQEMUCapsNewBinary(binary))) goto error; - qemuCaps->binary = g_strdup(binary); - /* We would also want to check faccessat if we cared about ACLs, * but we don't. */ if (stat(binary, &sb) < 0) { @@ -5021,14 +5028,12 @@ virQEMUCapsLoadFile(const char *filename, const char *binary, void *privData) { - virQEMUCapsPtr qemuCaps = virQEMUCapsNew(); + virQEMUCapsPtr qemuCaps = virQEMUCapsNewBinary(binary); virQEMUCapsCachePrivPtr priv = privData; if (!qemuCaps) return NULL; - qemuCaps->binary = g_strdup(binary); - if (virQEMUCapsLoadCache(priv->hostArch, qemuCaps, filename) < 0) goto error; diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 7488b9ddb8..70225926bf 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -544,6 +544,7 @@ typedef virQEMUCaps *virQEMUCapsPtr; G_DEFINE_AUTOPTR_CLEANUP_FUNC(virQEMUCaps, virObjectUnref); virQEMUCapsPtr virQEMUCapsNew(void); +virQEMUCapsPtr virQEMUCapsNewBinary(const char *binary); void virQEMUCapsSetInvalidation(virQEMUCapsPtr qemuCaps, bool enabled); -- 2.23.0

We don't need this for any functional purpose, but when debugging hosts it is useful to know what binary a given capabilities XML document is associated with. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- src/qemu/qemu_capabilities.c | 15 +++++++++++++++ tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml | 1 + .../qemucapabilitiesdata/caps_2.10.0.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml | 1 + .../qemucapabilitiesdata/caps_2.12.0.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_3.0.0.riscv32.xml | 1 + tests/qemucapabilitiesdata/caps_3.0.0.riscv64.xml | 1 + tests/qemucapabilitiesdata/caps_3.0.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml | 1 + tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml | 1 + tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml | 1 + tests/qemucapabilitiestest.c | 7 ++++++- tests/testutilsqemu.c | 5 ++++- 47 files changed, 69 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 2ab7ead92e..0929fd3e28 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -3872,6 +3872,7 @@ virQEMUCapsParseSEVInfo(virQEMUCapsPtr qemuCaps, xmlXPathContextPtr ctxt) * Parsing a doc that looks like * * <qemuCaps> + * <emulator>/some/path</emulator> * <qemuctime>234235253</qemuctime> * <selfctime>234235253</selfctime> * <selfvers>1002016</selfvers> @@ -3915,6 +3916,18 @@ virQEMUCapsLoadCache(virArch hostArch, goto cleanup; } + if (!(str = virXPathString("string(./emulator)", ctxt))) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("missing emulator in QEMU capabilities cache")); + goto cleanup; + } + if (STRNEQ(str, qemuCaps->binary)) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("Expected caps for '%s' but saw '%s'"), + qemuCaps->binary, str); + goto cleanup; + } + VIR_FREE(str); if (virXPathLongLong("string(./qemuctime)", ctxt, &l) < 0) { virReportError(VIR_ERR_XML_ERROR, "%s", _("missing qemuctime in QEMU capabilities XML")); @@ -4252,6 +4265,8 @@ virQEMUCapsFormatCache(virQEMUCapsPtr qemuCaps) virBufferAddLit(&buf, "<qemuCaps>\n"); virBufferAdjustIndent(&buf, 2); + virBufferEscapeString(&buf, "<emulator>%s</emulator>\n", + qemuCaps->binary); virBufferAsprintf(&buf, "<qemuctime>%llu</qemuctime>\n", (long long)qemuCaps->ctime); virBufferAsprintf(&buf, "<selfctime>%llu</selfctime>\n", diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml index 3ee25a7ea7..f2257d6bd2 100644 --- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-x86_64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml index cbeeb5c5e2..3a70ec8146 100644 --- a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-x86_64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml index 1424e1418d..cbb29ef2de 100644 --- a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-x86_64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml index f9ddfbef31..a6d0981224 100644 --- a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-x86_64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml index a1da42ba16..f598b4678a 100644 --- a/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-aarch64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml index 8a6622efda..5a57cb7760 100644 --- a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-ppc64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml index 2bbd92aa37..aa9027d514 100644 --- a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-s390x</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml index 8204db4fc4..53872abf2f 100644 --- a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-x86_64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml index 8caf45f7e8..db51d461a8 100644 --- a/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-s390x</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml index 5f34b945a5..f70335db8f 100644 --- a/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-x86_64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml index 72c63533a3..64d8d4951c 100644 --- a/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-aarch64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml index 147c017fe3..74c80d2fe9 100644 --- a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-ppc64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml index 8ff0633724..cbbe24823a 100644 --- a/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-s390x</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml index 85954d352e..b51cee9f28 100644 --- a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-x86_64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml index 9cfcf7bd2e..86d85faa73 100644 --- a/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-x86_64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml index 75a9c520fb..b217238307 100644 --- a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-x86_64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml index de54df6ed1..fddca13ee2 100644 --- a/tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-aarch64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml index 4e73396338..862464c2f0 100644 --- a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-ppc64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml index 5d098faf47..6b96e37a16 100644 --- a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-x86_64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml index 02397403cb..762ce4946e 100644 --- a/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-s390x</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml index 887a2832af..bc1359b0dd 100644 --- a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-x86_64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml index 1ee7fbfeec..6000bed682 100644 --- a/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-s390x</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml index b1db989ba4..c7f3be3a1b 100644 --- a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-x86_64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml index e3833633d7..a00d4b3d4c 100644 --- a/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-ppc64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml index dade75081b..95251de022 100644 --- a/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-s390x</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml index 12c3e6aef0..3d96f5f5b3 100644 --- a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-x86_64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml index baea300753..3b5a021dcf 100644 --- a/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-ppc64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.riscv32.xml b/tests/qemucapabilitiesdata/caps_3.0.0.riscv32.xml index 3b81ea11c3..0b507ec80e 100644 --- a/tests/qemucapabilitiesdata/caps_3.0.0.riscv32.xml +++ b/tests/qemucapabilitiesdata/caps_3.0.0.riscv32.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-riscv32</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.riscv64.xml b/tests/qemucapabilitiesdata/caps_3.0.0.riscv64.xml index 615667d9b2..0d7c589f71 100644 --- a/tests/qemucapabilitiesdata/caps_3.0.0.riscv64.xml +++ b/tests/qemucapabilitiesdata/caps_3.0.0.riscv64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-riscv64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.s390x.xml b/tests/qemucapabilitiesdata/caps_3.0.0.s390x.xml index 34a4999294..da57f8738b 100644 --- a/tests/qemucapabilitiesdata/caps_3.0.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_3.0.0.s390x.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-s390x</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml index 3d5535f404..c955994ac0 100644 --- a/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-x86_64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml index 0f64cfb2ba..cab38d442b 100644 --- a/tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-ppc64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml index c468ad0153..3e89d7f933 100644 --- a/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-x86_64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml index 9fc3c7e6f5..757bf193fc 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-aarch64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml index e84dd557a4..4e13888042 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-ppc64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml b/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml index bc675fc727..7d3a1bec6f 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-riscv32</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml b/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml index 1eeda32b7c..1732139db8 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-riscv64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml b/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml index 8b8acd5a33..fd124ce0c5 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-s390x</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml index c29be71658..ba32d4c592 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-x86_64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml index 2bc9672063..a98945de0e 100644 --- a/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-x86_64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml index 588e682064..a6469073fd 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-aarch64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml index 9a480c4eb3..ee9fb23640 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-ppc64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml b/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml index 505b3adcb6..fdf5cb4ce9 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-s390x</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml index 7d886d9a87..4857e2f5a5 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml @@ -1,4 +1,5 @@ <qemuCaps> + <emulator>/usr/bin/qemu-system-x86_64</emulator> <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> diff --git a/tests/qemucapabilitiestest.c b/tests/qemucapabilitiestest.c index ad1a1f30ee..5b32ac1451 100644 --- a/tests/qemucapabilitiestest.c +++ b/tests/qemucapabilitiestest.c @@ -75,6 +75,7 @@ testQemuCaps(const void *opaque) char *capsFile = NULL; qemuMonitorTestPtr mon = NULL; virQEMUCapsPtr capsActual = NULL; + char *binary = NULL; char *actual = NULL; unsigned int fakeMicrocodeVersion = 0; const char *p; @@ -93,7 +94,10 @@ testQemuCaps(const void *opaque) if (qemuProcessQMPInitMonitor(qemuMonitorTestGetMonitor(mon)) < 0) goto cleanup; - if (!(capsActual = virQEMUCapsNew()) || + binary = g_strdup_printf("/usr/bin/qemu-system-%s", + data->archName); + + if (!(capsActual = virQEMUCapsNewBinary(binary)) || virQEMUCapsInitQMPMonitor(capsActual, qemuMonitorTestGetMonitor(mon)) < 0) goto cleanup; @@ -132,6 +136,7 @@ testQemuCaps(const void *opaque) VIR_FREE(repliesFile); VIR_FREE(capsFile); VIR_FREE(actual); + VIR_FREE(binary); qemuMonitorTestFree(mon); virObjectUnref(capsActual); return ret; diff --git a/tests/testutilsqemu.c b/tests/testutilsqemu.c index f0c2dbf50e..d077f8cd2d 100644 --- a/tests/testutilsqemu.c +++ b/tests/testutilsqemu.c @@ -283,11 +283,14 @@ qemuTestParseCapabilitiesArch(virArch arch, const char *capsFile) { virQEMUCapsPtr qemuCaps = NULL; + char *binary = g_strdup_printf("/usr/bin/qemu-system-%s", + virArchToString(arch)); - if (!(qemuCaps = virQEMUCapsNew()) || + if (!(qemuCaps = virQEMUCapsNewBinary(binary)) || virQEMUCapsLoadCache(arch, qemuCaps, capsFile) < 0) goto error; + virQEMUCapsSetInvalidation(qemuCaps, false); return qemuCaps; error: -- 2.23.0

On 12/20/19 2:47 PM, Daniel P. Berrangé wrote:
It is helpful for debugging to have the binary name in the capabilities XML
Daniel P. Berrangé (3): qemu: add explicit flag to skip qemu caps invalidation qemu: add qemu caps constructor which takes binary name qemu: store the emulator name in the capabilities XML
src/qemu/qemu_capabilities.c | 52 +++++++++++++++---- src/qemu/qemu_capabilities.h | 4 ++ .../caps_1.5.3.x86_64.xml | 1 + .../caps_1.6.0.x86_64.xml | 1 + .../caps_1.7.0.x86_64.xml | 1 + .../caps_2.1.1.x86_64.xml | 1 + .../caps_2.10.0.aarch64.xml | 1 + .../caps_2.10.0.ppc64.xml | 1 + .../caps_2.10.0.s390x.xml | 1 + .../caps_2.10.0.x86_64.xml | 1 + .../caps_2.11.0.s390x.xml | 1 + .../caps_2.11.0.x86_64.xml | 1 + .../caps_2.12.0.aarch64.xml | 1 + .../caps_2.12.0.ppc64.xml | 1 + .../caps_2.12.0.s390x.xml | 1 + .../caps_2.12.0.x86_64.xml | 1 + .../caps_2.4.0.x86_64.xml | 1 + .../caps_2.5.0.x86_64.xml | 1 + .../caps_2.6.0.aarch64.xml | 1 + .../qemucapabilitiesdata/caps_2.6.0.ppc64.xml | 1 + .../caps_2.6.0.x86_64.xml | 1 + .../qemucapabilitiesdata/caps_2.7.0.s390x.xml | 1 + .../caps_2.7.0.x86_64.xml | 1 + .../qemucapabilitiesdata/caps_2.8.0.s390x.xml | 1 + .../caps_2.8.0.x86_64.xml | 1 + .../qemucapabilitiesdata/caps_2.9.0.ppc64.xml | 1 + .../qemucapabilitiesdata/caps_2.9.0.s390x.xml | 1 + .../caps_2.9.0.x86_64.xml | 1 + .../qemucapabilitiesdata/caps_3.0.0.ppc64.xml | 1 + .../caps_3.0.0.riscv32.xml | 1 + .../caps_3.0.0.riscv64.xml | 1 + .../qemucapabilitiesdata/caps_3.0.0.s390x.xml | 1 + .../caps_3.0.0.x86_64.xml | 1 + .../qemucapabilitiesdata/caps_3.1.0.ppc64.xml | 1 + .../caps_3.1.0.x86_64.xml | 1 + .../caps_4.0.0.aarch64.xml | 1 + .../qemucapabilitiesdata/caps_4.0.0.ppc64.xml | 1 + .../caps_4.0.0.riscv32.xml | 1 + .../caps_4.0.0.riscv64.xml | 1 + .../qemucapabilitiesdata/caps_4.0.0.s390x.xml | 1 + .../caps_4.0.0.x86_64.xml | 1 + .../caps_4.1.0.x86_64.xml | 1 + .../caps_4.2.0.aarch64.xml | 1 + .../qemucapabilitiesdata/caps_4.2.0.ppc64.xml | 1 + .../qemucapabilitiesdata/caps_4.2.0.s390x.xml | 1 + .../caps_4.2.0.x86_64.xml | 1 + tests/qemucapabilitiestest.c | 7 ++- tests/testutilsqemu.c | 5 +- 48 files changed, 101 insertions(+), 11 deletions(-)
Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Michal
participants (2)
-
Daniel P. Berrangé
-
Michal Prívozník