From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55770) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XXRqH-0001D9-8W for qemu-devel@nongnu.org; Fri, 26 Sep 2014 05:29:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XXRqB-0007cD-3q for qemu-devel@nongnu.org; Fri, 26 Sep 2014 05:29:33 -0400 Received: from mx1.redhat.com ([209.132.183.28]:6629) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XXRqA-0007Zo-Sn for qemu-devel@nongnu.org; Fri, 26 Sep 2014 05:29:27 -0400 From: Igor Mammedov Date: Fri, 26 Sep 2014 09:28:15 +0000 Message-Id: <1411723721-20484-11-git-send-email-imammedo@redhat.com> In-Reply-To: <1411723721-20484-1-git-send-email-imammedo@redhat.com> References: <1411723721-20484-1-git-send-email-imammedo@redhat.com> Subject: [Qemu-devel] [PATCH v2 10/36] test: usb: usb-storage hotplug test List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: cornelia.huck@de.ibm.com, mst@redhat.com, amit.shah@redhat.com, agraf@suse.de, borntraeger@de.ibm.com, kraxel@redhat.com, dmitry@daynix.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 verifies that SCSI bus is hotpluggable for hotplug operation wouldn't succeed without it. Signed-off-by: Igor Mammedov --- tests/usb-hcd-uhci-test.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tests/usb-hcd-uhci-test.c b/tests/usb-hcd-uhci-test.c index da96f98..8cf2c5b 100644 --- a/tests/usb-hcd-uhci-test.c +++ b/tests/usb-hcd-uhci-test.c @@ -46,6 +46,35 @@ 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")); + QDECREF(response); +} + int main(int argc, char **argv) { int ret; @@ -55,8 +84,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