update enumeration up to get full configuration descriptor

This commit is contained in:
hathach
2013-02-06 18:12:26 +07:00
parent 060c4b3b30
commit e6ed1729b2
6 changed files with 91 additions and 28 deletions

View File

@@ -103,6 +103,10 @@ semaphore_wait_timeout(1)
semaphore_wait_timeout(2)
semaphore_wait_timeout(3)
semaphore_wait_timeout(4)
semaphore_wait_timeout(5)
semaphore_wait_timeout(6)
semaphore_wait_timeout(7)
semaphore_wait_timeout(8)
tusb_error_t control_xfer_stub(uint8_t dev_addr, const tusb_std_request_t * const p_request, uint8_t data[], int num_call)
{
@@ -146,7 +150,7 @@ tusb_error_t control_xfer_stub(uint8_t dev_addr, const tusb_std_request_t * cons
}
//--------------------------------------------------------------------+
// enum connect directed
// enumeration
//--------------------------------------------------------------------+
void test_addr0_failed_dev_desc(void)
{
@@ -166,14 +170,11 @@ void test_addr0_failed_set_address(void)
TEST_ASSERT_EQUAL_MEMORY(&desc_device, enum_data_buffer, 8);
}
void test_enum_failed_get_full_dev_desc(void)
{
pipe_handle_t a_pipe = 0x1111;
osal_semaphore_wait_StubWithCallback(semaphore_wait_timeout_stub(2));
hcd_pipe_control_open_ExpectAndReturn(1, desc_device.bMaxPacketSize0, a_pipe);
hcd_pipe_control_open_ExpectAndReturn(1, desc_device.bMaxPacketSize0, TUSB_ERROR_NONE);
tusbh_device_mount_failed_cb_Expect(TUSB_ERROR_USBH_MOUNT_DEVICE_NOT_RESPOND, NULL);
usbh_enumeration_task();
@@ -185,15 +186,27 @@ void test_enum_failed_get_full_dev_desc(void)
TEST_ASSERT_EQUAL(enum_connect.hub_port, usbh_device_info_pool[1].hub_port);
}
void test_enum_update_new_device_info(void)
void test_enum_failed_get_9byte_config_desc(void)
{
TEST_IGNORE();
osal_semaphore_wait_StubWithCallback(semaphore_wait_timeout_stub(3));
osal_semaphore_wait_StubWithCallback(semaphore_wait_timeout_stub(2));
hcd_pipe_control_open_ExpectAndReturn(1, desc_device.bMaxPacketSize0, TUSB_ERROR_NONE);
tusbh_device_attached_cb_ExpectAndReturn((tusb_descriptor_device_t*) enum_data_buffer, 1);
tusbh_device_mount_failed_cb_Expect(TUSB_ERROR_USBH_MOUNT_DEVICE_NOT_RESPOND, NULL);
usbh_enumeration_task();
// hcd_pipe_control_open_ExpectAndReturn(1, desc_device.bMaxPacketSize0, TUSB_ERROR_NONE);
TEST_ASSERT_EQUAL(desc_device.idVendor, usbh_device_info_pool[1].vendor_id);
TEST_ASSERT_EQUAL(desc_device.idProduct, usbh_device_info_pool[1].product_id);
TEST_ASSERT_EQUAL(desc_device.bNumConfigurations, usbh_device_info_pool[1].configure_count);
}
void test_enum_failed_get_full_config_desc(void)
{
osal_semaphore_wait_StubWithCallback(semaphore_wait_timeout_stub(4));
hcd_pipe_control_open_ExpectAndReturn(1, desc_device.bMaxPacketSize0, TUSB_ERROR_NONE);
tusbh_device_attached_cb_ExpectAndReturn((tusb_descriptor_device_t*) enum_data_buffer, 1);
tusbh_device_mount_failed_cb_Expect(TUSB_ERROR_USBH_MOUNT_DEVICE_NOT_RESPOND, NULL);
usbh_enumeration_task();
}