From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45065) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XWl4C-0004D1-Ty for qemu-devel@nongnu.org; Wed, 24 Sep 2014 07:49:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XWl46-00064I-Mc for qemu-devel@nongnu.org; Wed, 24 Sep 2014 07:49:04 -0400 Received: from mx1.redhat.com ([209.132.183.28]:13257) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XWl46-00063p-EI for qemu-devel@nongnu.org; Wed, 24 Sep 2014 07:48:58 -0400 From: Igor Mammedov Date: Wed, 24 Sep 2014 11:47:57 +0000 Message-Id: <1411559299-19042-9-git-send-email-imammedo@redhat.com> In-Reply-To: <1411559299-19042-1-git-send-email-imammedo@redhat.com> References: <1411559299-19042-1-git-send-email-imammedo@redhat.com> Subject: [Qemu-devel] [PATCH 08/30] test: usb: usb-storage hotplug test List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: dmitry@daynix.com, borntraeger@de.ibm.com, mst@redhat.com, agraf@suse.de, cornelia.huck@de.ibm.com, kraxel@redhat.com, amit.shah@redhat.com, pbonzini@redhat.com, rth@twiddle.net usb-storage is different from usual usb devices in that it uses child SCSI bus for underlying storage. That patch checks that SCSI bus is hotpluggable for hotplug operation wouldn't succeed without it. Signed-off-by: Igor Mammedov --- tests/usb-hcd-uhci-test.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/tests/usb-hcd-uhci-test.c b/tests/usb-hcd-uhci-test.c index ce27962..bf1d52e 100644 --- a/tests/usb-hcd-uhci-test.c +++ b/tests/usb-hcd-uhci-test.c @@ -46,6 +46,34 @@ static void test_uhci_hotplug(void) usb_test_hotplug("uhci", 2, test_port_2); } +static void test_usb_storage_hotplug(void) +{ + QDict *response; + + response = qmp("{'execute': 'device_add'," + " 'arguments': {" + " 'driver': 'usb-storage'," + " 'drive': 'drive0'," + " 'id': 'usbdev0'" + "}}"); + g_assert(response); + g_assert(!qdict_haskey(response, "error")); + QDECREF(response); + + response = qmp("{'execute': 'device_del'," + " 'arguments': {" + " 'id': 'usbdev0'" + "}}"); + 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")); +} + int main(int argc, char **argv) { int ret; @@ -55,8 +83,10 @@ int main(int argc, char **argv) qtest_add_func("/uhci/pci/init", test_uhci_init); qtest_add_func("/uhci/pci/port1", test_port_1); qtest_add_func("/uhci/pci/hotplug", test_uhci_hotplug); + qtest_add_func("/uhci/pci/hotplug/usb-storage", test_usb_storage_hotplug); qtest_start("-device piix3-usb-uhci,id=uhci,addr=1d.0" + " -drive id=drive0,if=none,file=/dev/null" " -device usb-tablet,bus=uhci.0,port=1"); ret = g_test_run(); qtest_end(); -- 1.8.3.1