usb: usbtest: add a test case to support bos for queue control
authorHuang Rui <ray.huang@amd.com>
Mon, 4 Nov 2013 13:11:53 +0000 (21:11 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 9 Dec 2013 01:42:45 +0000 (17:42 -0800)
In Test 10 of usbtest module, it queues multiple control messages and
thereby tests control message queuing, protocol stalls, short reads, and
fault handling. And this patch add a test case to support queue BOS control
request for USB 3.0 SPEC.

Signed-off-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/misc/usbtest.c

index b415282..f3c3136 100644 (file)
@@ -944,7 +944,7 @@ struct ctrl_ctx {
        int                     last;
 };
 
-#define NUM_SUBCASES   15              /* how many test subcases here? */
+#define NUM_SUBCASES   16              /* how many test subcases here? */
 
 struct subcase {
        struct usb_ctrlrequest  setup;
@@ -1218,6 +1218,15 @@ test_ctrl_queue(struct usbtest_dev *dev, struct usbtest_param *param)
                        }
                        expected = -EREMOTEIO;
                        break;
+               case 15:
+                       req.wValue = cpu_to_le16(USB_DT_BOS << 8);
+                       if (udev->bos)
+                               len = le16_to_cpu(udev->bos->desc->wTotalLength);
+                       else
+                               len = sizeof(struct usb_bos_descriptor);
+                       if (udev->speed != USB_SPEED_SUPER)
+                               expected = -EPIPE;
+                       break;
                default:
                        ERROR(dev, "bogus number of ctrl queue testcases!\n");
                        context.status = -EINVAL;