[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 10/36] test: usb: usb-storage hotplug test
From: |
Igor Mammedov |
Subject: |
[Qemu-devel] [PATCH v2 10/36] test: usb: usb-storage hotplug test |
Date: |
Fri, 26 Sep 2014 09:28:15 +0000 |
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 <address@hidden>
---
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
- [Qemu-devel] [PATCH v2 00/36] complete conversion to hotplug-handler API, Igor Mammedov, 2014/09/26
- [Qemu-devel] [PATCH v2 01/36] test: virtio-scsi: check if hot-plug/unplug works, Igor Mammedov, 2014/09/26
- [Qemu-devel] [PATCH v2 02/36] test: virtio-serial: check if hot-plug/unplug works, Igor Mammedov, 2014/09/26
- [Qemu-devel] [PATCH v2 03/36] test: libqos: add qpci_plug_device_test() and qpci_unplug_acpi_device_test(), Igor Mammedov, 2014/09/26
- [Qemu-devel] [PATCH v2 04/36] test: virtio-rng: check if hot-plug/unplug works, Igor Mammedov, 2014/09/26
- [Qemu-devel] [PATCH v2 05/36] test: virtio-net: check if hot-plug/unplug works, Igor Mammedov, 2014/09/26
- [Qemu-devel] [PATCH v2 06/36] test: virtio-blk: check if hot-plug/unplug works, Igor Mammedov, 2014/09/26
- [Qemu-devel] [PATCH v2 07/36] test: usb: move uhci port test code to libqos/usb.c, Igor Mammedov, 2014/09/26
- [Qemu-devel] [PATCH v2 08/36] test: usb: add port test to uhci unit test, Igor Mammedov, 2014/09/26
- [Qemu-devel] [PATCH v2 09/36] test: usb: generic usb device hotplug, Igor Mammedov, 2014/09/26
- [Qemu-devel] [PATCH v2 10/36] test: usb: usb-storage hotplug test,
Igor Mammedov <=
- [Qemu-devel] [PATCH v2 12/36] access BusState.allow_hotplug using wraper qbus_is_hotpluggable(), Igor Mammedov, 2014/09/26
- [Qemu-devel] [PATCH v2 13/36] qdev: do not allow to instantiate non hotpluggable device with device_add, Igor Mammedov, 2014/09/26
- [Qemu-devel] [PATCH v2 14/36] qdev: HotplugHandler: rename unplug callback to unplug_request, Igor Mammedov, 2014/09/26
- [Qemu-devel] [PATCH v2 15/36] qdev: HotplugHandler: provide unplug callback, Igor Mammedov, 2014/09/26
- [Qemu-devel] [PATCH v2 16/36] qdev: add simple/generic unplug callback for HotplugHandler, Igor Mammedov, 2014/09/26
- [Qemu-devel] [PATCH v2 18/36] qdev: drop hotplug check from bus_add_child(), Igor Mammedov, 2014/09/26
- [Qemu-devel] [PATCH v2 17/36] qdev: add wrapper to set BUS as HotplugHandler, Igor Mammedov, 2014/09/26