@@ -16,6 +16,9 @@
#include "libqos/virtio-pci.h"
#include "libqos/virtio-mmio.h"
#include "libqos/malloc-generic.h"
+#include "qapi/qmp/qdict.h"
+#include "qapi/qmp/qint.h"
+#include "qapi/qmp/qstring.h"
#include "qemu/bswap.h"
#include "standard-headers/linux/virtio_ids.h"
#include "standard-headers/linux/virtio_config.h"
@@ -399,6 +402,7 @@ static void pci_config(void)
QOSState *qs;
int n_size = TEST_IMAGE_SIZE / 2;
uint64_t capacity;
+ QDict *args = qdict_new();
qs = pci_test_start();
@@ -409,8 +413,10 @@ static void pci_config(void)
qvirtio_set_driver_ok(&dev->vdev);
- qmp("{ 'execute': 'block_resize', 'arguments': { 'device': 'drive0', "
- " 'size': %d } }", n_size);
+ qdict_put_str(args, "device", "drive0");
+ qdict_put_int(args, "size", n_size);
+ qmp_cmd("block_resize", args);
+
qvirtio_wait_config_isr(&dev->vdev, QVIRTIO_BLK_TIMEOUT_US);
capacity = qvirtio_config_readq(&dev->vdev, 0);
@@ -435,6 +441,7 @@ static void pci_msix(void)
uint32_t free_head;
uint8_t status;
char *data;
+ QDict *args = qdict_new();
qs = pci_test_start();
@@ -458,8 +465,9 @@ static void pci_msix(void)
qvirtio_set_driver_ok(&dev->vdev);
- qmp("{ 'execute': 'block_resize', 'arguments': { 'device': 'drive0', "
- " 'size': %d } }", n_size);
+ qdict_put_str(args, "device", "drive0");
+ qdict_put_int(args, "size", n_size);
+ qmp_cmd("block_resize", args);
qvirtio_wait_config_isr(&dev->vdev, QVIRTIO_BLK_TIMEOUT_US);
@@ -675,6 +683,7 @@ static void mmio_basic(void)
QGuestAllocator *alloc;
int n_size = TEST_IMAGE_SIZE / 2;
uint64_t capacity;
+ QDict *args = qdict_new();
arm_test_start();
@@ -691,8 +700,9 @@ static void mmio_basic(void)
test_basic(&dev->vdev, alloc, vq);
- qmp("{ 'execute': 'block_resize', 'arguments': { 'device': 'drive0', "
- " 'size': %d } }", n_size);
+ qdict_put_str(args, "device", "drive0");
+ qdict_put_int(args, "size", n_size);
+ qmp_cmd("block_resize", args);
qvirtio_wait_queue_isr(&dev->vdev, vq, QVIRTIO_BLK_TIMEOUT_US);
As argued elsewhere, it's less code to maintain if we convert from a dynamic string passed to qobject_from_jsonv() to instead use a hand-built QDict. Signed-off-by: Eric Blake <eblake@redhat.com> --- tests/virtio-blk-test.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-)