[libvirt] [PATCH v2] storage: dir: adapts .wipeVol for ploop volumes
by Olga Krishtal
The modification of .volWipe callback wipes ploop volume using one of
given wiping algorithm: dod, nnsa, etc.
However, in case of ploop volume we need to reinitialize root.hds and DiskDescriptor.xml.
v2:
- added check on ploop tools presens
- virCommandAddArgFormat changed to virCommandAddArg
Signed-off-by: Olga Krishtal <okrishtal(a)virtuozzo.com>
---
src/storage/storage_backend.c | 68 +++++++++++++++++++++++++++++++++++++++----
1 file changed, 62 insertions(+), 6 deletions(-)
diff --git a/src/storage/storage_backend.c b/src/storage/storage_backend.c
index 5adf1fd..14b3a64 100644
--- a/src/storage/storage_backend.c
+++ b/src/storage/storage_backend.c
@@ -2195,6 +2195,55 @@ virStorageBackendWipeLocal(virStorageVolDefPtr vol,
return ret;
}
+static int
+virStorageBackendVolWipePloop(virStorageVolDefPtr vol)
+{
+ virCommandPtr cmd = NULL;
+ char *target_path = NULL;
+ char *disk_desc = NULL;
+ char *create_tool = NULL;
+
+ int ret = -1;
+
+ create_tool = virFindFileInPath("ploop");
+ if (!create_tool) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+ _("unable to find ploop tools, please install them"));
+ return -1;
+ }
+
+ if (virAsprintf(&target_path, "%s/root.hds", vol->target.path) < 0)
+ goto cleanup;
+
+ if (virAsprintf(&disk_desc, "%s/DiskDescriptor.xml", vol->target.path) < 0)
+ goto cleanup;
+
+ if (virFileRemove(disk_desc, 0, 0) < 0) {
+ virReportError(errno, _("Failed to delete DiskDescriptor.xml of volume '%s'"),
+ vol->target.path);
+ goto cleanup;
+ }
+ if (virFileRemove(target_path, 0, 0) < 0) {
+ virReportError(errno, _("failed to delete root.hds of volume '%s'"),
+ vol->target.path);
+ goto cleanup;
+ }
+
+ cmd = virCommandNewArgList(create_tool, "init", "-s", NULL);
+
+ virCommandAddArgFormat(cmd, "%lluM", VIR_DIV_UP(vol->target.capacity,
+ (1024 * 1024)));
+ virCommandAddArgList(cmd, "-t", "ext4", NULL);
+ virCommandAddArg(cmd, target_path);
+ ret = virCommandRun(cmd, NULL);
+
+ cleanup:
+ VIR_FREE(disk_desc);
+ VIR_FREE(target_path);
+ VIR_FREE(create_tool);
+ virCommandFree(cmd);
+ return ret;
+}
int
virStorageBackendVolWipeLocal(virConnectPtr conn ATTRIBUTE_UNUSED,
@@ -2207,6 +2256,8 @@ virStorageBackendVolWipeLocal(virConnectPtr conn ATTRIBUTE_UNUSED,
const char *alg_char = NULL;
struct stat st;
virCommandPtr cmd = NULL;
+ char *path = NULL;
+ char *target_path = vol->target.path;
virCheckFlags(0, -1);
@@ -2214,12 +2265,12 @@ virStorageBackendVolWipeLocal(virConnectPtr conn ATTRIBUTE_UNUSED,
vol->target.path, algorithm);
if (vol->target.format == VIR_STORAGE_FILE_PLOOP) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("wiping for ploop volumes is not supported"));
- goto cleanup;
+ if (virAsprintf(&path, "%s/root.hds", vol->target.path) < 0)
+ goto cleanup;
+ target_path = path;
}
- fd = open(vol->target.path, O_RDWR);
+ fd = open(target_path, O_RDWR);
if (fd == -1) {
virReportSystemError(errno,
_("Failed to open storage volume with path '%s'"),
@@ -2276,13 +2327,12 @@ virStorageBackendVolWipeLocal(virConnectPtr conn ATTRIBUTE_UNUSED,
if (algorithm != VIR_STORAGE_VOL_WIPE_ALG_ZERO) {
cmd = virCommandNew(SCRUB);
virCommandAddArgList(cmd, "-f", "-p", alg_char,
- vol->target.path, NULL);
+ target_path, NULL);
if (virCommandRun(cmd, NULL) < 0)
goto cleanup;
ret = 0;
- goto cleanup;
} else {
if (S_ISREG(st.st_mode) && st.st_blocks < (st.st_size / DEV_BSIZE)) {
ret = virStorageBackendVolZeroSparseFileLocal(vol, st.st_size, fd);
@@ -2292,10 +2342,16 @@ virStorageBackendVolWipeLocal(virConnectPtr conn ATTRIBUTE_UNUSED,
vol->target.allocation,
st.st_blksize);
}
+ if (ret < 0)
+ goto cleanup;
}
+ if (vol->target.format == VIR_STORAGE_FILE_PLOOP)
+ ret = virStorageBackendVolWipePloop(vol);
+
cleanup:
virCommandFree(cmd);
+ VIR_FREE(path);
VIR_FORCE_CLOSE(fd);
return ret;
}
--
1.8.3.1
8 years, 5 months
[libvirt] [PATCH] tests: add missed directories in EXTRA_DIST
by Luyao Huang
In commit ec5dcf2a and b0b4a35c, we have moved some xml to
new directories, but forget fix the Makefile. Add 2 directories
in EXTRA_DIST to fix broken vpath build.
Signed-off-by: Luyao Huang <lhuang(a)redhat.com>
---
tests/Makefile.am | 2 ++
1 file changed, 2 insertions(+)
diff --git a/tests/Makefile.am b/tests/Makefile.am
index fb2380d..010e348 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -122,6 +122,8 @@ EXTRA_DIST = \
qemucaps2xmldata \
qemuhelpdata \
qemuhotplugtestdata \
+ qemuhotplugtestdevices \
+ qemuhotplugtestdomains \
qemumonitorjsondata \
qemuxml2argvdata \
qemuxml2xmloutdata \
--
1.8.3.1
8 years, 5 months
[libvirt] [PATCH v2] virCommandExec: Report error if execve fails
by Michal Privoznik
In an unlikely event of execve() failing, the virCommandExec()
function does not report any error, even though checks that are
at the beginning of the function are verbose when failing.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
diff to v1:
- Fixed the test (used virFork() instead of plain fork(),
prolonged the waiting time for child reply, ...)
src/util/vircommand.c | 7 +++++-
tests/commandtest.c | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 75 insertions(+), 1 deletion(-)
diff --git a/src/util/vircommand.c b/src/util/vircommand.c
index f5bd7af..3c67c90 100644
--- a/src/util/vircommand.c
+++ b/src/util/vircommand.c
@@ -2152,7 +2152,12 @@ int virCommandExec(virCommandPtr cmd)
return -1;
}
- return execve(cmd->args[0], cmd->args, cmd->env);
+ execve(cmd->args[0], cmd->args, cmd->env);
+
+ virReportSystemError(errno,
+ _("cannot execute binary %s"),
+ cmd->args[0]);
+ return -1;
}
#else
int virCommandExec(virCommandPtr cmd ATTRIBUTE_UNUSED)
diff --git a/tests/commandtest.c b/tests/commandtest.c
index f433ad7..2b77b9b 100644
--- a/tests/commandtest.c
+++ b/tests/commandtest.c
@@ -1063,6 +1063,74 @@ static int test24(const void *unused ATTRIBUTE_UNUSED)
return ret;
}
+
+static int test25(const void *unused ATTRIBUTE_UNUSED)
+{
+ int ret = -1;
+ int pipeFD[2] = { -1, -1};
+ char rv = 0;
+ ssize_t tries = 100;
+ pid_t pid;
+
+ if (pipe(pipeFD) < 0) {
+ fprintf(stderr, "Unable to create pipe\n");
+ goto cleanup;
+ }
+
+ if (virSetNonBlock(pipeFD[0]) < 0) {
+ fprintf(stderr, "Unable to make read end of pipe nonblocking\n");
+ goto cleanup;
+ }
+
+ /* Now, fork and try to exec a nonexistent binary. */
+ pid = virFork();
+ if (pid < 0) {
+ fprintf(stderr, "Unable to spawn child\n");
+ goto cleanup;
+ }
+
+ if (pid == 0) {
+ /* Child */
+ virCommandPtr cmd = virCommandNew("some/nonexistent/binary");
+
+ rv = virCommandExec(cmd);
+ if (safewrite(pipeFD[1], &rv, sizeof(rv)) < 0)
+ fprintf(stderr, "Unable to write to pipe\n");
+ _exit(EXIT_FAILURE);
+ }
+
+ /* Parent */
+ while (--tries) {
+ if (saferead(pipeFD[0], &rv, sizeof(rv)) < 0) {
+ if (errno != EWOULDBLOCK) {
+ fprintf(stderr, "Unable to read from pipe\n");
+ goto cleanup;
+ }
+
+ usleep(10 * 1000);
+ } else {
+ break;
+ }
+ }
+
+ if (!tries) {
+ fprintf(stderr, "Child hasn't returned anything\n");
+ goto cleanup;
+ }
+
+ if (rv >= 0) {
+ fprintf(stderr, "Child should have returned an error\n");
+ goto cleanup;
+ }
+
+ ret = 0;
+ cleanup:
+ VIR_FORCE_CLOSE(pipeFD[0]);
+ VIR_FORCE_CLOSE(pipeFD[1]);
+ return ret;
+}
+
+
static void virCommandThreadWorker(void *opaque)
{
virCommandTestDataPtr test = opaque;
@@ -1215,6 +1283,7 @@ mymain(void)
DO_TEST(test22);
DO_TEST(test23);
DO_TEST(test24);
+ DO_TEST(test25);
virMutexLock(&test->lock);
if (test->running) {
--
2.8.4
8 years, 5 months
[libvirt] [PATCH 0/2] Add qemu hotplug tests with ccw devices
by Tomasz Flendrich
These changes require another patch, or else there would be conflicts:
[libvirt] [PATCH 0/3] Clean up qemuhotplugtest xml files
https://www.redhat.com/archives/libvir-list/2016-July/msg00202.html
Hotplugging ccw devices was previously not tested, so I decided
to add some testcases because I plan on making changes to different
address types and want to make sure regression won't happen.
Please let me know if you think that the filenames are too long.
I know that some device files are duplicated. It is (right now) required
because of the way qemuhotplugtest.c calculates the expected xml
filenames. I plan on changing that to explicitly stating the basis
xml, the device xml, and the expected xml, so that there would
be no duplicates. It will also make filenames shorter.
In another patch, I will add testcases that verify attaching a device
to the persistent config. Explicitly stating the expected xml
will be even more useful then.
Tomasz Flendrich (2):
Add qemu hotplug test files
Add ccw test cases to qemu hotplug
tests/qemuhotplugtest.c | 37 +++++++++++
.../qemuhotplug-ccw-virtio-1-explicit-reverse.xml | 8 +++
.../qemuhotplug-ccw-virtio-1-explicit.xml | 8 +++
.../qemuhotplug-ccw-virtio-2-explicit.xml | 8 +++
.../qemuhotplug-ccw-virtio-2.xml | 8 +++
.../qemuhotplug-ccw-virtio.xml | 8 +++
.../qemuhotplug-base-ccw-live+ccw-virtio.xml | 63 +++++++++++++++++++
...-2-ccw-virtio+ccw-virtio-1-explicit-reverse.xml | 73 ++++++++++++++++++++++
...ive-with-2-ccw-virtio+ccw-virtio-1-explicit.xml | 73 ++++++++++++++++++++++
...qemuhotplug-base-ccw-live-with-2-ccw-virtio.xml | 63 +++++++++++++++++++
...-live-with-ccw-virtio+ccw-virtio-2-explicit.xml | 73 ++++++++++++++++++++++
...-base-ccw-live-with-ccw-virtio+ccw-virtio-2.xml | 73 ++++++++++++++++++++++
.../qemuhotplug-base-ccw-live-with-ccw-virtio.xml | 63 +++++++++++++++++++
.../qemuhotplug-base-ccw-live.xml | 53 ++++++++++++++++
14 files changed, 611 insertions(+)
create mode 100644 tests/qemuhotplugtestdevices/qemuhotplug-ccw-virtio-1-explicit-reverse.xml
create mode 100644 tests/qemuhotplugtestdevices/qemuhotplug-ccw-virtio-1-explicit.xml
create mode 100644 tests/qemuhotplugtestdevices/qemuhotplug-ccw-virtio-2-explicit.xml
create mode 100644 tests/qemuhotplugtestdevices/qemuhotplug-ccw-virtio-2.xml
create mode 100644 tests/qemuhotplugtestdevices/qemuhotplug-ccw-virtio.xml
create mode 100644 tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live+ccw-virtio.xml
create mode 100644 tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live-with-2-ccw-virtio+ccw-virtio-1-explicit-reverse.xml
create mode 100644 tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live-with-2-ccw-virtio+ccw-virtio-1-explicit.xml
create mode 100644 tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live-with-2-ccw-virtio.xml
create mode 100644 tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live-with-ccw-virtio+ccw-virtio-2-explicit.xml
create mode 100644 tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live-with-ccw-virtio+ccw-virtio-2.xml
create mode 100644 tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live-with-ccw-virtio.xml
create mode 100644 tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live.xml
--
1.9.1
8 years, 5 months
[libvirt] question about PCI new_id sysfs interface
by Jim Fehlig
After updating the dom0 kernel on one of my Xen test hosts, I noticed problems
with PCI hostdev management. E.g
# virsh nodedev-detach pci_0000_07_10_1
error: Failed to detach device pci_0000_07_10_1
error: Failed to add PCI device ID '8086 1520' to pciback: File exists
It turns out there was a small interface change to new_id with the following
commit to 3.16 kernel
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/dr...
which now causes xen_pciback to fail writes of "vendorid productid" to new_id. e.g.
# echo "8086 1520" > /sys/bus/pci/drivers/pciback/new_id
-bash: echo: write error: File exists
Interestingly, vfio doesn't encounter the same error
# echo "8086 1520" > /sys/bus/pci/drivers/vfio-pci/new_id
# echo $?
0
vfio-pci has:
static struct pci_driver vfio_pci_driver = {
.name = "vfio-pci",
.id_table = NULL, /* only dynamic ids */
while xen-pciback has:
static const struct pci_device_id pcistub_ids[] = {
{
.vendor = PCI_ANY_ID,
.device = PCI_ANY_ID,
.subvendor = PCI_ANY_ID,
.subdevice = PCI_ANY_ID,
},
{0,},
};
static struct pci_driver xen_pcibk_pci_driver = {
.name = "pciback",
.id_table = pcistub_ids,
So any vendor/device pair will match for xen-pciback, while none will match for
vfio-pci.
But after reading that commit and the associated thread, it is not clear to me
how to best fix this. Options are
1. set .id_table to NULL for xen-pciback
2. drop using the new_id interface from libvirt
3. pass more values (subvendor, subdevice, class, etc) to the new_id interface
I'm not sure what problems, if any, options 1 and 2 might cause. Option 2 seems
the best approach since new_id seems to be a rather unsafe interface.
Thanks for your opinions!
Regards,
Jim
8 years, 5 months
[libvirt] [PATCH] virCommandExec: Report error if execve fails
by Michal Privoznik
In an unlikely event of execve() failing, the virCommandExec()
function does not report any error, even though checks that are
at the beginning of the function are verbose when failing.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/util/vircommand.c | 7 +++++-
tests/commandtest.c | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 75 insertions(+), 1 deletion(-)
diff --git a/src/util/vircommand.c b/src/util/vircommand.c
index f5bd7af..3c67c90 100644
--- a/src/util/vircommand.c
+++ b/src/util/vircommand.c
@@ -2152,7 +2152,12 @@ int virCommandExec(virCommandPtr cmd)
return -1;
}
- return execve(cmd->args[0], cmd->args, cmd->env);
+ execve(cmd->args[0], cmd->args, cmd->env);
+
+ virReportSystemError(errno,
+ _("cannot execute binary %s"),
+ cmd->args[0]);
+ return -1;
}
#else
int virCommandExec(virCommandPtr cmd ATTRIBUTE_UNUSED)
diff --git a/tests/commandtest.c b/tests/commandtest.c
index f433ad7..8dc57d7 100644
--- a/tests/commandtest.c
+++ b/tests/commandtest.c
@@ -1063,6 +1063,74 @@ static int test24(const void *unused ATTRIBUTE_UNUSED)
return ret;
}
+
+static int test25(const void *unused ATTRIBUTE_UNUSED)
+{
+ int ret = -1;
+ int pipeFD[2] = { -1, -1};
+ int rv = 0;
+ ssize_t tries = 10;
+ pid_t pid;
+
+ if (pipe(pipeFD) < 0) {
+ fprintf(stderr, "Unable to create pipe\n");
+ goto cleanup;
+ }
+
+ if (virSetNonBlock(pipeFD[0]) < 0) {
+ fprintf(stderr, "Unable to make read end of pipe nonblocking\n");
+ goto cleanup;
+ }
+
+ /* Now, fork and try to exec a nonexistent binary. */
+ pid = fork();
+ if (pid < 0) {
+ fprintf(stderr, "Unable to spawn child\n");
+ goto cleanup;
+ }
+
+ if (pid == 0) {
+ /* Child */
+ virCommandPtr cmd = virCommandNew("some/nonexistent/binary");
+
+ rv = virCommandExec(cmd);
+ if (safewrite(pipeFD[1], (void *) &rv, sizeof(rv)) < 0)
+ fprintf(stderr, "Unable to write to pipe\n");
+ _exit(EXIT_FAILURE);
+ }
+
+ /* Parent */
+ while (tries--) {
+ if (saferead(pipeFD[0], (void *) &rv, sizeof(rv)) < 0) {
+ if (errno != EWOULDBLOCK) {
+ fprintf(stderr, "Unable to read from pipe\n");
+ goto cleanup;
+ }
+
+ usleep(1000);
+ } else {
+ break;
+ }
+ }
+
+ if (!tries) {
+ fprintf(stderr, "Child hasn't returned anything\n");
+ goto cleanup;
+ }
+
+ if (rv >= 0) {
+ fprintf(stderr, "Child should have returned an error\n");
+ goto cleanup;
+ }
+
+ ret = 0;
+ cleanup:
+ VIR_FORCE_CLOSE(pipeFD[0]);
+ VIR_FORCE_CLOSE(pipeFD[1]);
+ return ret;
+}
+
+
static void virCommandThreadWorker(void *opaque)
{
virCommandTestDataPtr test = opaque;
@@ -1215,6 +1283,7 @@ mymain(void)
DO_TEST(test22);
DO_TEST(test23);
DO_TEST(test24);
+ DO_TEST(test25);
virMutexLock(&test->lock);
if (test->running) {
--
2.8.4
8 years, 5 months
[libvirt] [PATCHv2 0/3] qemu: add support for intel-iommu
by Ján Tomko
https://bugzilla.redhat.com/show_bug.cgi?id=1235581
v2:
* removed '-iommu' suffix from the model name
* mentioned the device in formatdomain.html
* added the device to ABI stability check
and the hot/coldplug parser (where both operations
are rejected)
* error out on non-q35 machines
* added a comment about broken qemu to the commit message
of patch 2/3
* no change wrt the device order on the command line -
qemu seems to take care of this
Ján Tomko (3):
Introduce <iommu> device
Add QEMU_CAPS_DEVICE_INTEL_IOMMU
qemu: format intel-iommu on the command line
docs/formatdomain.html.in | 26 +++++++
docs/schemas/domaincommon.rng | 11 +++
src/conf/domain_conf.c | 90 +++++++++++++++++++++-
src/conf/domain_conf.h | 16 ++++
src/libvirt_private.syms | 2 +
src/qemu/qemu_capabilities.c | 2 +
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 35 +++++++++
src/qemu/qemu_driver.c | 6 ++
src/qemu/qemu_hotplug.c | 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.x86_64.xml | 1 +
.../qemuxml2argvdata/qemuxml2argv-intel-iommu.args | 22 ++++++
.../qemuxml2argvdata/qemuxml2argv-intel-iommu.xml | 37 +++++++++
tests/qemuxml2argvtest.c | 2 +
.../qemuxml2xmlout-intel-iommu.xml | 37 +++++++++
tests/qemuxml2xmltest.c | 4 +
18 files changed, 294 insertions(+), 1 deletion(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-intel-iommu.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-intel-iommu.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-intel-iommu.xml
--
2.7.3
8 years, 5 months
[libvirt] [PATCH 0/5] test-rewrap-args improvements
by Ján Tomko
Ján Tomko (5):
qemuxml2argvtest: drop empty pseries-vio-address-clash.args
testutils: find perl early
testutils: only rewrap args files
test-wrap-argv: print diff instead of the incorrectly wrapped file
test-wrap-argv: set cutoff at 78 characters
.../qemuargv2xml-disk-drive-cache-unsafe.args | 3 ++-
.../qemuargv2xml-disk-drive-network-rbd-ipv6.args | 4 ++--
.../qemuxml2argv-aarch64-virt-default-nic.args | 3 ++-
...qemuxml2argv-aarch64-virtio-pci-manual-addresses.args | 4 ++--
.../qemuxml2argv-arm-vexpressa9-virtio.args | 3 ++-
tests/qemuxml2argvdata/qemuxml2argv-autoindex.args | 4 ++--
tests/qemuxml2argvdata/qemuxml2argv-bios-nvram.args | 3 ++-
.../qemuxml2argv-boot-complex-bootindex.args | 3 ++-
.../qemuxml2argv-boot-menu-disable-drive-bootindex.args | 3 ++-
.../qemuxml2argv-boot-menu-enable-bootindex.args | 3 ++-
tests/qemuxml2argvdata/qemuxml2argv-boot-order.args | 3 ++-
tests/qemuxml2argvdata/qemuxml2argv-boot-strict.args | 3 ++-
.../qemuxml2argv-console-virtio-ccw.args | 4 ++--
.../qemuxml2argv-cpu-host-model-vendor.args | 4 ++--
.../qemuxml2argv-disk-cdrom-network-ftp.args | 4 ++--
.../qemuxml2argv-disk-cdrom-network-http.args | 4 ++--
.../qemuxml2argv-disk-cdrom-network-tftp.args | 4 ++--
.../qemuxml2argv-disk-drive-network-iscsi-lun.args | 8 ++++----
.../qemuxml2argv-disk-drive-network-iscsi.args | 4 ++--
.../qemuxml2argv-disk-drive-network-rbd-auth-AES.args | 5 +++--
.../qemuxml2argv-disk-drive-network-rbd-ipv6.args | 4 ++--
.../qemuxml2argv-disk-drive-no-boot.args | 6 ++++--
tests/qemuxml2argvdata/qemuxml2argv-disk-ioeventfd.args | 4 ++--
.../qemuxml2argv-disk-scsi-lun-passthrough.args | 8 ++++----
.../qemuxml2argvdata/qemuxml2argv-disk-scsi-megasas.args | 4 ++--
.../qemuxml2argv-disk-scsi-mptsas1068.args | 4 ++--
.../qemuxml2argv-disk-scsi-virtio-scsi.args | 4 ++--
tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-vscsi.args | 4 ++--
.../qemuxml2argv-disk-source-pool-mode.args | 4 ++--
.../qemuxml2argv-disk-virtio-ccw-many.args | 9 ++++++---
tests/qemuxml2argvdata/qemuxml2argv-disk-virtio-ccw.args | 3 ++-
.../qemuxml2argv-disk-virtio-scsi-ccw.args | 7 ++++---
.../qemuxml2argv-disk-virtio-scsi-cmd_per_lun.args | 4 ++--
.../qemuxml2argv-disk-virtio-scsi-ioeventfd.args | 4 ++--
.../qemuxml2argv-disk-virtio-scsi-max_sectors.args | 4 ++--
.../qemuxml2argv-disk-virtio-scsi-num_queues.args | 4 ++--
tests/qemuxml2argvdata/qemuxml2argv-fs9p-ccw.args | 3 ++-
.../qemuxml2argvdata/qemuxml2argv-hostdev-scsi-boot.args | 4 ++--
.../qemuxml2argv-hostdev-scsi-lsi-iscsi.args | 4 ++--
.../qemuxml2argv-hostdev-scsi-readonly.args | 4 ++--
.../qemuxml2argv-hostdev-scsi-virtio-iscsi-auth.args | 8 ++++----
.../qemuxml2argv-hostdev-scsi-virtio-iscsi.args | 12 ++++++------
.../qemuxml2argv-hostdev-scsi-virtio-scsi.args | 4 ++--
tests/qemuxml2argvdata/qemuxml2argv-hugepages-pages.args | 3 ++-
.../qemuxml2argvdata/qemuxml2argv-hugepages-pages2.args | 3 ++-
.../qemuxml2argvdata/qemuxml2argv-hugepages-pages3.args | 3 ++-
.../qemuxml2argvdata/qemuxml2argv-hugepages-pages5.args | 3 ++-
.../qemuxml2argvdata/qemuxml2argv-hugepages-pages6.args | 3 ++-
.../qemuxml2argvdata/qemuxml2argv-hugepages-shared.args | 7 ++++---
.../qemuxml2argv-iothreads-virtio-scsi-ccw.args | 4 ++--
.../qemuxml2argv-iothreads-virtio-scsi-pci.args | 4 ++--
.../qemuxml2argv-machine-aeskeywrap-off-cap.args | 3 ++-
.../qemuxml2argv-machine-aeskeywrap-off-caps.args | 3 ++-
.../qemuxml2argv-machine-aeskeywrap-on-cap.args | 3 ++-
.../qemuxml2argv-machine-aeskeywrap-on-caps.args | 3 ++-
.../qemuxml2argv-machine-deakeywrap-off-cap.args | 3 ++-
.../qemuxml2argv-machine-deakeywrap-off-caps.args | 3 ++-
.../qemuxml2argv-machine-deakeywrap-on-cap.args | 3 ++-
.../qemuxml2argv-machine-deakeywrap-on-caps.args | 3 ++-
.../qemuxml2argv-machine-keywrap-none-caps.args | 3 ++-
.../qemuxml2argv-machine-keywrap-none.args | 3 ++-
.../qemuxml2argv-memory-hotplug-dimm-addr.args | 3 ++-
.../qemuxml2argv-memory-hotplug-dimm.args | 3 ++-
tests/qemuxml2argvdata/qemuxml2argv-monitor-json.args | 4 ++--
tests/qemuxml2argvdata/qemuxml2argv-name-escape.args | 4 ++--
.../qemuxml2argv-net-vhostuser-multiq.args | 3 ++-
tests/qemuxml2argvdata/qemuxml2argv-net-vhostuser.args | 3 ++-
.../qemuxml2argv-net-virtio-disable-offloads.args | 8 ++++----
tests/qemuxml2argvdata/qemuxml2argv-no-shutdown.args | 4 ++--
.../qemuxml2argvdata/qemuxml2argv-pci-autoadd-addr.args | 4 ++--
tests/qemuxml2argvdata/qemuxml2argv-pci-autoadd-idx.args | 4 ++--
tests/qemuxml2argvdata/qemuxml2argv-pci-many.args | 4 ++--
.../qemuxml2argvdata/qemuxml2argv-pcie-expander-bus.args | 3 ++-
.../qemuxml2argv-pseries-vio-address-clash.args | 0
.../qemuxml2argv-pseries-vio-user-assigned.args | 4 ++--
tests/qemuxml2argvdata/qemuxml2argv-pseries-vio.args | 4 ++--
tests/qemuxml2argvdata/qemuxml2argv-q35-usb2-multi.args | 4 ++--
.../qemuxml2argvdata/qemuxml2argv-q35-usb2-reorder.args | 4 ++--
.../qemuxml2argv-s390-allow-bogus-usb-controller.args | 4 ++--
.../qemuxml2argv-s390-allow-bogus-usb-none.args | 4 ++--
tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-ccw.args | 4 ++--
tests/test-wrap-argv.pl | 16 ++++++++++------
tests/testutils.c | 16 +++++++++++++++-
83 files changed, 208 insertions(+), 151 deletions(-)
delete mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pseries-vio-address-clash.args
--
2.7.3
8 years, 5 months