summary refs log tree commit diff stats
path: root/tests/libqos/pci.c
diff options
context:
space:
mode:
authorThomas Huth <thuth@redhat.com>2017-08-15 08:58:54 +0200
committerThomas Huth <thuth@redhat.com>2017-09-15 09:05:18 +0200
commitacd80015fbe28f4f513e036ad1db2a76738d1f53 (patch)
treeeb1db46ee8961cffdda43c21958bb4540a65c2d8 /tests/libqos/pci.c
parent3dabde1128b671f36ac6cb36b97b273139964420 (diff)
downloadfocaccia-qemu-acd80015fbe28f4f513e036ad1db2a76738d1f53.tar.gz
focaccia-qemu-acd80015fbe28f4f513e036ad1db2a76738d1f53.zip
tests: Introduce generic device hot-plug/hot-unplug functions
A lot of tests provide code for adding and removing a device via the
device_add and device_del QMP commands. Maintaining this code in so many
places is cumbersome and error-prone (some of the code parts check the
responses for device deletion in an incorrect way, for example, we've got
to deal with both, error code and DEVICE_DEL event here). So let's provide
some proper generic functions for adding and removing a device instead.

The code for correctly unplugging a device has been taken from a patch
from Peter Xu.

Reviewed-by: Peter Xu <peterx@redhat.com>
Tested-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Diffstat (limited to 'tests/libqos/pci.c')
-rw-r--r--tests/libqos/pci.c19
1 files changed, 2 insertions, 17 deletions
diff --git a/tests/libqos/pci.c b/tests/libqos/pci.c
index 2dcdeade2a..df1f98e56a 100644
--- a/tests/libqos/pci.c
+++ b/tests/libqos/pci.c
@@ -394,21 +394,6 @@ QPCIBar qpci_legacy_iomap(QPCIDevice *dev, uint16_t addr)
 void qpci_plug_device_test(const char *driver, const char *id,
                            uint8_t slot, const char *opts)
 {
-    QDict *response;
-    char *cmd;
-
-    cmd = g_strdup_printf("{'execute': 'device_add',"
-                          " 'arguments': {"
-                          "   'driver': '%s',"
-                          "   'addr': '%d',"
-                          "   %s%s"
-                          "   'id': '%s'"
-                          "}}", driver, slot,
-                          opts ? opts : "", opts ? "," : "",
-                          id);
-    response = qmp(cmd);
-    g_free(cmd);
-    g_assert(response);
-    g_assert(!qdict_haskey(response, "error"));
-    QDECREF(response);
+    qtest_qmp_device_add(driver, id, "'addr': '%d'%s%s", slot,
+                         opts ? ", " : "", opts ? opts : "");
 }