[libvirt] [PATCH 1/1] qemuxml2xmltest.c: mock /etc/qemu/firmware path
by Daniel Henrique Barboza
Since commit 'b66ca0220a' the 'tpm-emulator' tests in qemuxml2xmltest
started to fail unless 'make check' is either executed as root
or with an user with access to /etc/qemu/firmware file. This is the
error that happens in a regular 'make check' run with an unprivileged
user:
------
546) QEMU XML-2-XML-inactive tpm-emulator ...
1315 In '/home/danielhb/kvm-project/libvirt/tests/qemuxml2xmloutdata/tpm-emulator.xml':
1316 Offset 909
1317 Expect [1.2]
1318 Actual [default]
1319 ... Expected result code=0 but received code=4libvirt: error : cannot open directory '/home/danielhb/kvm-pr oject/libvirt/usr/etc/qemu/firmware': Permission denied
1320 FAILED
1321 547) QEMU XML-2-XML-active tpm-emulator ...
1322 In '/home/danielhb/kvm-project/libvirt/tests/qemuxml2xmloutdata/tpm-emulator.xml':
1323 Offset 909
1324 Expect [1.2]
1325 Actual [default]
1326 ... Expected result code=0 but received code=4libvirt: error : cannot open directory '/home/danielhb/kvm-pr oject/libvirt/usr/etc/qemu/firmware': Permission denied
1327 FAILED
------
The reason is that commit b66ca0220a changed the domain validation to
fetch the capabilities in qemuDomainDeviceDefValidate time, directly
impacting existing tpm-emulator tests in qemuxml2xmltest.c that
that since then will attempt to read the /etc/qemu/firmware file
that wasn't being mocked.
This patch fixes it by adding the mock paths for /etc/qemu/firmware
in qemuxml2xmltest.c as well, using the virFileWrapper API like it
is done in commit 5b9819eedc71.
Fixes: b66ca0220a ("qemu: domain: Call virDomainCapsDeviceDefValidate")
Signed-off-by: Daniel Henrique Barboza <danielhb413(a)gmail.com>
---
tests/Makefile.am | 3 ++-
tests/qemuxml2xmltest.c | 13 +++++++++++++
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 1c92e3ca6f..31a22ebefd 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -573,7 +573,8 @@ qemuxml2argvmock_la_LIBADD = $(MOCKLIBS_LIBS)
qemuxml2xmltest_SOURCES = \
qemuxml2xmltest.c testutilsqemu.c testutilsqemu.h \
- testutils.c testutils.h
+ testutils.c testutils.h \
+ virfilewrapper.c virfilewrapper.h
qemuxml2xmltest_LDADD = $(qemu_LDADDS)
qemumonitorjsontest_SOURCES = \
diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c
index 525eb9a740..51be6e0263 100644
--- a/tests/qemuxml2xmltest.c
+++ b/tests/qemuxml2xmltest.c
@@ -14,6 +14,9 @@
# include "qemu/qemu_domain.h"
# include "testutilsqemu.h"
# include "virstring.h"
+# include "virfilewrapper.h"
+# include "testutils.h"
+# include "configmake.h"
# define VIR_FROM_THIS VIR_FROM_NONE
@@ -167,6 +170,15 @@ mymain(void)
setenv("LIBVIRT_FAKE_ROOT_DIR", fakerootdir, 1);
+ /* Required for tpm-emulator tests
+ */
+ virFileWrapperAddPrefix(SYSCONFDIR "/qemu/firmware",
+ abs_srcdir "/qemufirmwaredata/etc/qemu/firmware");
+ virFileWrapperAddPrefix(PREFIX "/share/qemu/firmware",
+ abs_srcdir "/qemufirmwaredata/usr/share/qemu/firmware");
+ virFileWrapperAddPrefix("/home/user/.config/qemu/firmware",
+ abs_srcdir "/qemufirmwaredata/home/user/.config/qemu/firmware");
+
if (qemuTestDriverInit(&driver) < 0)
return EXIT_FAILURE;
@@ -1325,6 +1337,7 @@ mymain(void)
virHashFree(capslatest);
qemuTestDriverFree(&driver);
VIR_FREE(fakerootdir);
+ virFileWrapperClearPrefixes();
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
}
--
2.21.0
5 years, 3 months
[libvirt] [PATCH] src: Don't check lxc_monitor_protocol-struct when LXC is disabled
by Michal Privoznik
If LXC is disabled at build time then there is no
libvirt_driver_lxc_impl_la-*.lo to run the 'check-protocol'
against.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/Makefile.am | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/Makefile.am b/src/Makefile.am
index 3ae4b87abb..817a7ecf34 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -318,9 +318,11 @@ $(srcdir)/remote_protocol-struct \
$(srcdir)/virnetprotocol-struct $(srcdir)/virkeepaliveprotocol-struct: \
$(srcdir)/%-struct: rpc/libvirt_net_rpc_la-%.lo
$(PDWTAGS)
+if WITH_LXC
$(srcdir)/lxc_monitor_protocol-struct: \
$(srcdir)/%-struct: lxc/libvirt_driver_lxc_impl_la-%.lo
$(PDWTAGS)
+endif WITH_LXC
$(srcdir)/lock_protocol-struct: \
$(srcdir)/%-struct: locking/lockd_la-%.lo
$(PDWTAGS)
--
2.21.0
5 years, 3 months
[libvirt] [PATCH] qemu: alias: Generate 'qomName' of disk with useraliases
by Peter Krempa
Commit fb64e176f4f forgot to delete the check that short-circuits the
disk alias creation if the alias is already present. The side efect
of this is that the creation qomName which is necessary to be able to
refer to disk frontends when -blockdev is used was skipped when user
aliases are used.
Fix it by deleting the check. Also prevent any potential memory leaks
from calling this function repeatedly by creating the qomName only when
it's not present.
https://bugzilla.redhat.com/show_bug.cgi?id=1741838
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/qemu/qemu_alias.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/src/qemu/qemu_alias.c b/src/qemu/qemu_alias.c
index 585cc972ba..216a18d0d9 100644
--- a/src/qemu/qemu_alias.c
+++ b/src/qemu/qemu_alias.c
@@ -182,9 +182,6 @@ qemuAssignDeviceDiskAlias(virDomainDefPtr def,
const char *prefix = virDomainDiskBusTypeToString(disk->bus);
int controllerModel = -1;
- if (disk->info.alias)
- return 0;
-
if (!disk->info.alias) {
if (disk->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE) {
if (disk->bus == VIR_DOMAIN_DISK_BUS_SCSI) {
@@ -220,7 +217,8 @@ qemuAssignDeviceDiskAlias(virDomainDefPtr def,
* on the alias in qemu. While certain disk types use just the alias, some
* need the full path into /machine/peripheral as a historical artifact.
*/
- if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV)) {
+ if (!diskPriv->qomName &&
+ virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV)) {
switch ((virDomainDiskBus) disk->bus) {
case VIR_DOMAIN_DISK_BUS_FDC:
case VIR_DOMAIN_DISK_BUS_IDE:
--
2.21.0
5 years, 3 months
[libvirt] [PATCH] util: mdev: support persistent devices with mdevctl
by Jonathon Jongsma
When a host is rebooted, mediated devices disappear from sysfs. mdevctl
(https://github.com/mdevctl/mdevctl) is a utility for managing and
persisting these devices. It maintains a registry of mediated devices
and can start and stop them by UUID.
when libvirt attempts to create a new mediated device object, we currently
fail if the path does not exist in sysfs. This patch tries a little bit
harder by using mdevctl to attempt to activate the device. The approach
is fairly naive -- it just calls 'mdevctl start -u $UUID' without
checking whether this UUID is registered with mdevctl or not.
See https://bugzilla.redhat.com/show_bug.cgi?id=1699274
Signed-off-by: Jonathon Jongsma <jjongsma(a)redhat.com>
---
NOTES:
- an argument could be made that we should simply do nothing here. mdevctl does
have support for automatically activating the mediated device when the parent
device becomes available (via udev). So if the administrator set up the mdev
to start automatically, this patch should not even be necessary. That said, I
think this patch could still be useful.
- As I said above, the approach is pretty naive. I could have checked whether
the device was defined in mdevctl's registry and given a different error
message ("try registering this device with mdevctl") in that scenario. But
I chose to keep it simple.
src/util/virmdev.c | 22 +++++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)
diff --git a/src/util/virmdev.c b/src/util/virmdev.c
index 3d5488cdae..7a2f0adedc 100644
--- a/src/util/virmdev.c
+++ b/src/util/virmdev.c
@@ -25,6 +25,7 @@
#include "virfile.h"
#include "virstring.h"
#include "viralloc.h"
+#include "vircommand.h"
#define VIR_FROM_THIS VIR_FROM_NONE
@@ -148,9 +149,24 @@ virMediatedDeviceNew(const char *uuidstr, virMediatedDeviceModelType model)
return NULL;
if (!virFileExists(sysfspath)) {
- virReportError(VIR_ERR_DEVICE_MISSING,
- _("mediated device '%s' not found"), uuidstr);
- return NULL;
+ bool activated = false;
+ /* if the mdev device path doesn't exist, we may still be able to start
+ * the device using mdevctl
+ */
+ char *mdevctl = virFindFileInPath("mdevctl");
+ if (mdevctl) {
+ const char *runargs[] = { mdevctl, "start", "-u", uuidstr, NULL };
+ if (virRun(runargs, NULL) == 0) {
+ /* check to see if it the device exists now */
+ activated = virFileExists(sysfspath);
+ }
+ }
+
+ if (!activated) {
+ virReportError(VIR_ERR_DEVICE_MISSING,
+ _("mediated device '%s' not found"), uuidstr);
+ return NULL;
+ }
}
if (VIR_ALLOC(dev) < 0)
--
2.21.0
5 years, 3 months
[libvirt] [glib PATCH 0/2] Fix build failures on Fedora rawhide due to new glib
by Daniel P. Berrangé
Daniel P. Berrangé (2):
gobject: remove use of G_PARAM_PRIVATE
Set desired glib min/max API versions
configure.ac | 2 ++
libvirt-gconfig/Makefile.am | 2 ++
libvirt-glib/Makefile.am | 2 ++
libvirt-gobject/Makefile.am | 2 ++
libvirt-gobject/libvirt-gobject-network-dhcp-lease.c | 1 -
5 files changed, 8 insertions(+), 1 deletion(-)
--
2.23.0.rc2
5 years, 3 months
[libvirt] [PATCH v2] maint: Improve use of configmake.h on mingw
by Eric Blake
Gnulib has added a patch that allows configmake.h to be included
without causing build failures on mingw if <winsock2.h> is later
included (whether directly, or indirectly such as through gnulib's
<unistd.h>).
This reverts commit fed58d83c60ff1c20292856bec006577788b7494 ("build:
Fix checkpoint_conf on mingw"), now that we don't have to worry about
header inclusion ordering issues.
Signed-off-by: Eric Blake <eblake(a)redhat.com>
---
v1 was 'build: Solve mingw build clash with DATADIR', and dead on arrival,
so it was reverted shortly after.
It turns out that pragma push_macro isn't good enough (you have to
do it before EVERY site that includes winsock2.h, including those that
do so indirectly by including gnulib's replacement unistd.h), so it's
better to just fix gnulib from the get-go instead of trying to work
around it at every internal spot.
This time, I've actually tested mingw locally rather than lazily
relying on jenkins to do the mingw validation work for me; I used:
make -f Makefile.ci ci-build@fedora-rawhide CI_CONFIGURE="mingw32-configure"
But since I botched up v1, I'll still wait for a review before pushing
v2.
Gnulib changes:
b5e7a0d configmake: Avoid namespace pollution issue on mingw.
.gnulib | 2 +-
src/conf/checkpoint_conf.c | 2 --
2 files changed, 1 insertion(+), 3 deletions(-)
diff --git a/.gnulib b/.gnulib
index c8e2eee548..b5e7a0deb7 160000
--- a/.gnulib
+++ b/.gnulib
@@ -1 +1 @@
-Subproject commit c8e2eee548e6e81f3fccd31cf9f9a825db7fc8a8
+Subproject commit b5e7a0deb7f9a3fc7f0206e39f6b032b1051d0cd
diff --git a/src/conf/checkpoint_conf.c b/src/conf/checkpoint_conf.c
index 5ce4cc4853..5f4c275dd8 100644
--- a/src/conf/checkpoint_conf.c
+++ b/src/conf/checkpoint_conf.c
@@ -21,8 +21,6 @@
#include <config.h>
-#include <unistd.h>
-
#include "configmake.h"
#include "internal.h"
#include "virbitmap.h"
--
2.20.1
5 years, 3 months
[libvirt] [dockerfiles PATCH 0/2] Use Fedora 30 to perform MinGW builds
by Fabiano Fidêncio
Due to a recent removal of mingw packages on Rawhide, let's use
Fedora 30 machines to perform MinGW builds till the packages
are un-retired/re-added in Rawhide.
Fabiano Fidêncio (2):
refresh: Use fedora-30 to perform MinGW builds
Refresh archived Dockerfiles
buildenv-libosinfo-centos-7.zip | Bin 458 -> 458 bytes
buildenv-libosinfo-debian-10-cross-aarch64.zip | Bin 683 -> 683 bytes
buildenv-libosinfo-debian-10-cross-armv6l.zip | Bin 682 -> 682 bytes
buildenv-libosinfo-debian-10-cross-armv7l.zip | Bin 686 -> 686 bytes
buildenv-libosinfo-debian-10-cross-i686.zip | Bin 682 -> 682 bytes
buildenv-libosinfo-debian-10-cross-mips.zip | Bin 678 -> 678 bytes
buildenv-libosinfo-debian-10-cross-mips64el.zip | Bin 689 -> 689 bytes
buildenv-libosinfo-debian-10-cross-mipsel.zip | Bin 681 -> 681 bytes
buildenv-libosinfo-debian-10-cross-ppc64le.zip | Bin 687 -> 687 bytes
buildenv-libosinfo-debian-10-cross-s390x.zip | Bin 680 -> 680 bytes
buildenv-libosinfo-debian-10.zip | Bin 555 -> 555 bytes
buildenv-libosinfo-debian-9-cross-aarch64.zip | Bin 682 -> 682 bytes
buildenv-libosinfo-debian-9-cross-armv6l.zip | Bin 681 -> 681 bytes
buildenv-libosinfo-debian-9-cross-armv7l.zip | Bin 685 -> 685 bytes
buildenv-libosinfo-debian-9-cross-mips.zip | Bin 678 -> 678 bytes
buildenv-libosinfo-debian-9-cross-mips64el.zip | Bin 689 -> 689 bytes
buildenv-libosinfo-debian-9-cross-mipsel.zip | Bin 680 -> 680 bytes
buildenv-libosinfo-debian-9-cross-ppc64le.zip | Bin 687 -> 687 bytes
buildenv-libosinfo-debian-9-cross-s390x.zip | Bin 680 -> 680 bytes
buildenv-libosinfo-debian-9.zip | Bin 554 -> 554 bytes
buildenv-libosinfo-debian-sid-cross-aarch64.zip | Bin 683 -> 683 bytes
buildenv-libosinfo-debian-sid-cross-armv6l.zip | Bin 682 -> 682 bytes
buildenv-libosinfo-debian-sid-cross-armv7l.zip | Bin 686 -> 686 bytes
buildenv-libosinfo-debian-sid-cross-i686.zip | Bin 683 -> 683 bytes
buildenv-libosinfo-debian-sid-cross-mips.zip | Bin 678 -> 678 bytes
...denv-libosinfo-debian-sid-cross-mips64el.zip | Bin 689 -> 689 bytes
buildenv-libosinfo-debian-sid-cross-mipsel.zip | Bin 681 -> 681 bytes
buildenv-libosinfo-debian-sid-cross-ppc64le.zip | Bin 687 -> 687 bytes
buildenv-libosinfo-debian-sid-cross-s390x.zip | Bin 680 -> 680 bytes
buildenv-libosinfo-debian-sid.zip | Bin 555 -> 555 bytes
buildenv-libosinfo-fedora-29.zip | Bin 488 -> 488 bytes
buildenv-libosinfo-fedora-30.zip | Bin 489 -> 551 bytes
buildenv-libosinfo-fedora-rawhide.zip | Bin 572 -> 507 bytes
buildenv-libosinfo-ubuntu-16.zip | Bin 558 -> 558 bytes
buildenv-libosinfo-ubuntu-18.zip | Bin 558 -> 558 bytes
buildenv-libvirt-centos-7.zip | Bin 662 -> 662 bytes
buildenv-libvirt-debian-10-cross-aarch64.zip | Bin 887 -> 887 bytes
buildenv-libvirt-debian-10-cross-armv6l.zip | Bin 880 -> 880 bytes
buildenv-libvirt-debian-10-cross-armv7l.zip | Bin 884 -> 884 bytes
buildenv-libvirt-debian-10-cross-i686.zip | Bin 883 -> 883 bytes
buildenv-libvirt-debian-10-cross-mips.zip | Bin 878 -> 878 bytes
buildenv-libvirt-debian-10-cross-mips64el.zip | Bin 892 -> 892 bytes
buildenv-libvirt-debian-10-cross-mipsel.zip | Bin 882 -> 882 bytes
buildenv-libvirt-debian-10-cross-ppc64le.zip | Bin 890 -> 890 bytes
buildenv-libvirt-debian-10-cross-s390x.zip | Bin 883 -> 883 bytes
buildenv-libvirt-debian-10.zip | Bin 773 -> 773 bytes
buildenv-libvirt-debian-9-cross-aarch64.zip | Bin 896 -> 896 bytes
buildenv-libvirt-debian-9-cross-armv6l.zip | Bin 887 -> 887 bytes
buildenv-libvirt-debian-9-cross-armv7l.zip | Bin 893 -> 893 bytes
buildenv-libvirt-debian-9-cross-mips.zip | Bin 886 -> 886 bytes
buildenv-libvirt-debian-9-cross-mips64el.zip | Bin 898 -> 898 bytes
buildenv-libvirt-debian-9-cross-mipsel.zip | Bin 889 -> 889 bytes
buildenv-libvirt-debian-9-cross-ppc64le.zip | Bin 898 -> 898 bytes
buildenv-libvirt-debian-9-cross-s390x.zip | Bin 890 -> 890 bytes
buildenv-libvirt-debian-9.zip | Bin 777 -> 777 bytes
buildenv-libvirt-debian-sid-cross-aarch64.zip | Bin 886 -> 886 bytes
buildenv-libvirt-debian-sid-cross-armv6l.zip | Bin 879 -> 879 bytes
buildenv-libvirt-debian-sid-cross-armv7l.zip | Bin 884 -> 884 bytes
buildenv-libvirt-debian-sid-cross-i686.zip | Bin 883 -> 883 bytes
buildenv-libvirt-debian-sid-cross-mips.zip | Bin 877 -> 877 bytes
buildenv-libvirt-debian-sid-cross-mips64el.zip | Bin 892 -> 892 bytes
buildenv-libvirt-debian-sid-cross-mipsel.zip | Bin 882 -> 882 bytes
buildenv-libvirt-debian-sid-cross-ppc64le.zip | Bin 890 -> 890 bytes
buildenv-libvirt-debian-sid-cross-s390x.zip | Bin 883 -> 883 bytes
buildenv-libvirt-debian-sid.zip | Bin 773 -> 773 bytes
buildenv-libvirt-fedora-29.zip | Bin 694 -> 694 bytes
buildenv-libvirt-fedora-30.zip | Bin 695 -> 809 bytes
buildenv-libvirt-fedora-rawhide.zip | Bin 828 -> 714 bytes
buildenv-libvirt-ubuntu-16.zip | Bin 784 -> 784 bytes
buildenv-libvirt-ubuntu-18.zip | Bin 783 -> 783 bytes
refresh | 4 ++--
71 files changed, 2 insertions(+), 2 deletions(-)
--
2.21.0
5 years, 3 months
[libvirt] [jenkins-ci PATCH 0/3] Use Fedora 30 to perform MinGW builds
by Fabiano Fidêncio
Due to a recent removal of mingw packages on Rawhide, let's use
Fedora 30 machines to perform MinGW builds till the packages
are un-retired/re-added in Rawhide.
Fabiano Fidêncio (3):
mappings: MinGW packages are not Fedora Rawhide specific
guests: Move MinGW builds to fedora-30
jenkins: Set fedora-30 as the MinGW machine.
guests/host_vars/libvirt-fedora-30/main.yml | 10 ++
.../host_vars/libvirt-fedora-rawhide/main.yml | 10 --
guests/vars/mappings.yml | 108 +++++++++---------
jenkins/jobs/defaults.yaml | 2 +-
4 files changed, 65 insertions(+), 65 deletions(-)
--
2.21.0
5 years, 3 months
[libvirt] [PATCH v4 0/4] Add support for Direct Mode for Hyper-V Synthetic timers
by Vitaly Kuznetsov
Changes since v3 [Ján Tomko]:
- Drop already merged patches.
- add "tests: qemuxml2argv: switch to DO_TEST_CAPS_LATEST for Hyper-V
tests" patch (hope I got the idea correctly).
- add hyperv-stimer-direct test to qemuxml2xml/qemuxml2argv tests.
- use VIR_CPU_x86_HV_STIMER_DIRECT instead of 'hv-stimer-direct'.
Original description:
QEMU-4.1 will bring us Direct Mode for Hyper-V Synthetic timers support,
we need to support it in libvirt too. As this is not a new enlightenment
but rather an enhancement of an existing one ('stimer'), support it in
<stimer state='on'>
<direct state='on'/>
</stimer>
form. Backwards compatibility is (hopefully) preserved.
Vitaly Kuznetsov (4):
tests: qemuxml2argv: switch to DO_TEST_CAPS_LATEST for Hyper-V tests
conf: add support for Direct Mode for Hyper-V Synthetic timers
qemu: add support for Direct Mode for Hyper-V Synthetic timers
news: mention Direct Mode for Hyper-V Synthetic timers support
docs/formatdomain.html.in | 10 +--
docs/news.xml | 9 +++
docs/schemas/domaincommon.rng | 16 ++++-
src/conf/domain_conf.c | 62 ++++++++++++++++++-
src/conf/domain_conf.h | 1 +
src/cpu/cpu_x86.c | 3 +
src/cpu/cpu_x86_data.h | 2 +
src/qemu/qemu_command.c | 3 +
src/qemu/qemu_process.c | 20 +++++-
tests/qemuxml2argvdata/hyperv-off.args | 27 --------
.../hyperv-off.x86_64-latest.args | 32 ++++++++++
tests/qemuxml2argvdata/hyperv-panic.args | 27 --------
.../hyperv-panic.x86_64-latest.args | 32 ++++++++++
.../hyperv-stimer-direct.x86_64-latest.args | 32 ++++++++++
.../qemuxml2argvdata/hyperv-stimer-direct.xml | 33 ++++++++++
tests/qemuxml2argvdata/hyperv.args | 29 ---------
.../hyperv.x86_64-latest.args | 34 ++++++++++
tests/qemuxml2argvtest.c | 7 ++-
.../hyperv-stimer-direct.xml | 35 +++++++++++
tests/qemuxml2xmltest.c | 1 +
20 files changed, 321 insertions(+), 94 deletions(-)
delete mode 100644 tests/qemuxml2argvdata/hyperv-off.args
create mode 100644 tests/qemuxml2argvdata/hyperv-off.x86_64-latest.args
delete mode 100644 tests/qemuxml2argvdata/hyperv-panic.args
create mode 100644 tests/qemuxml2argvdata/hyperv-panic.x86_64-latest.args
create mode 100644 tests/qemuxml2argvdata/hyperv-stimer-direct.x86_64-latest.args
create mode 100644 tests/qemuxml2argvdata/hyperv-stimer-direct.xml
delete mode 100644 tests/qemuxml2argvdata/hyperv.args
create mode 100644 tests/qemuxml2argvdata/hyperv.x86_64-latest.args
create mode 100644 tests/qemuxml2xmloutdata/hyperv-stimer-direct.xml
--
2.20.1
5 years, 3 months