summaryrefslogtreecommitdiffstats
path: root/tests/usb-hcd-xhci-test.c
diff options
context:
space:
mode:
authorThomas Huth2017-08-15 08:58:54 +0200
committerThomas Huth2017-09-15 09:05:18 +0200
commitacd80015fbe28f4f513e036ad1db2a76738d1f53 (patch)
treeeb1db46ee8961cffdda43c21958bb4540a65c2d8 /tests/usb-hcd-xhci-test.c
parentMerge remote-tracking branch 'remotes/dgilbert/tags/pull-hmp-20170914' into s... (diff)
downloadqemu-acd80015fbe28f4f513e036ad1db2a76738d1f53.tar.gz
qemu-acd80015fbe28f4f513e036ad1db2a76738d1f53.tar.xz
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/usb-hcd-xhci-test.c')
-rw-r--r--tests/usb-hcd-xhci-test.c51
1 files changed, 4 insertions, 47 deletions
diff --git a/tests/usb-hcd-xhci-test.c b/tests/usb-hcd-xhci-test.c
index 031764da6d..9c14e3053a 100644
--- a/tests/usb-hcd-xhci-test.c
+++ b/tests/usb-hcd-xhci-test.c
@@ -23,59 +23,16 @@ static void test_xhci_hotplug(void)
static void test_usb_uas_hotplug(void)
{
- QDict *response;
-
- response = qmp("{'execute': 'device_add',"
- " 'arguments': {"
- " 'driver': 'usb-uas',"
- " 'id': 'uas'"
- "}}");
- g_assert(response);
- g_assert(!qdict_haskey(response, "error"));
- QDECREF(response);
-
- response = qmp("{'execute': 'device_add',"
- " 'arguments': {"
- " 'driver': 'scsi-hd',"
- " 'drive': 'drive0',"
- " 'id': 'scsi-hd'"
- "}}");
- g_assert(response);
- g_assert(!qdict_haskey(response, "error"));
- QDECREF(response);
+ qtest_qmp_device_add("usb-uas", "uas", NULL);
+ qtest_qmp_device_add("scsi-hd", "scsihd", "'drive': 'drive0'");
/* TODO:
UAS HBA driver in libqos, to check that
added disk is visible after BUS rescan
*/
- response = qmp("{'execute': 'device_del',"
- " 'arguments': {"
- " 'id': 'scsi-hd'"
- "}}");
- g_assert(response);
- g_assert(!qdict_haskey(response, "error"));
- QDECREF(response);
-
- response = qmp("");
- g_assert(qdict_haskey(response, "event"));
- g_assert(!strcmp(qdict_get_str(response, "event"), "DEVICE_DELETED"));
- QDECREF(response);
-
-
- response = qmp("{'execute': 'device_del',"
- " 'arguments': {"
- " 'id': 'uas'"
- "}}");
- g_assert(response);
- g_assert(!qdict_haskey(response, "error"));
- QDECREF(response);
-
- response = qmp("");
- g_assert(response);
- g_assert(qdict_haskey(response, "event"));
- g_assert(!strcmp(qdict_get_str(response, "event"), "DEVICE_DELETED"));
- QDECREF(response);
+ qtest_qmp_device_del("scsihd");
+ qtest_qmp_device_del("uas");
}
int main(int argc, char **argv)