diff options
| author | hathach <[email protected]> | 2013-03-25 17:39:22 +0700 |
|---|---|---|
| committer | hathach <[email protected]> | 2013-03-25 17:39:22 +0700 |
| commit | d0a73f4b0d6d25d5f6a08f3b519241cec4e2a535 (patch) | |
| tree | 1242ed2aa5239a1a71f3de6d10d8120b585e3ed0 /tests | |
| parent | c026a9f2e0aca713c7cb5f08eb40018f7f16e1be (diff) | |
add several helper function
add test & code for hidh_keyboard_open_subtask
- skip parsing HID descriptor for keyboard
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/project.yml | 1 | ||||
| -rw-r--r-- | tests/test/host/hid/test_hidh_keyboard.c | 45 | ||||
| -rw-r--r-- | tests/test/support/descriptor_test.h | 1 |
3 files changed, 22 insertions, 25 deletions
diff --git a/tests/project.yml b/tests/project.yml index 54a07be6f..57ea70986 100644 --- a/tests/project.yml +++ b/tests/project.yml @@ -77,6 +77,7 @@ - :callback - :array :ignore: :args_only +# :unity_helper_path: test/support/type_helper.h :treat_as: uint8: HEX8 uint16: HEX16 diff --git a/tests/test/host/hid/test_hidh_keyboard.c b/tests/test/host/hid/test_hidh_keyboard.c index ffd712bf9..b437c9cab 100644 --- a/tests/test/host/hid/test_hidh_keyboard.c +++ b/tests/test/host/hid/test_hidh_keyboard.c @@ -43,6 +43,7 @@ #include "mock_osal.h" #include "mock_usbh.h" #include "mock_hcd.h" +#include "descriptor_test.h" extern hidh_keyboard_info_t keyboard_data[TUSB_CFG_HOST_DEVICE_MAX]; @@ -63,19 +64,8 @@ tusb_keyboard_report_t report; uint8_t instance_num; keyboard_interface_t* p_hidh_kbd_interface; -tusb_descriptor_interface_t const kbd_descriptor = -{ - .bLength = sizeof(tusb_descriptor_interface_t), - .bDescriptorType = TUSB_DESC_INTERFACE, - .bInterfaceNumber = 1, - .bAlternateSetting = 0, - .bNumEndpoints = 1, - .bInterfaceClass = TUSB_CLASS_HID, - .bInterfaceSubClass = HID_SUBCLASS_BOOT, - .bInterfaceProtocol = HID_PROTOCOL_KEYBOARD, - .iInterface = 0 -}; - +tusb_descriptor_interface_t const *p_kbd_interface_desc = &desc_configuration.keyboard_interface; +tusb_descriptor_endpoint_t const *p_kdb_endpoint_desc = &desc_configuration.keyboard_endpoint; void setUp(void) { @@ -86,7 +76,7 @@ void setUp(void) hidh_keyboard_init(); - keyboard_data[dev_addr-1].instance_count = 0; + keyboard_data[dev_addr-1].instance_count = 1; p_hidh_kbd_interface = &keyboard_data[dev_addr-1].instance[instance_num]; p_hidh_kbd_interface->report_size = sizeof(tusb_keyboard_report_t); @@ -105,6 +95,13 @@ void tearDown(void) //--------------------------------------------------------------------+ // keyboard_install, keyboard_no_instances, keybaord_init //--------------------------------------------------------------------+ +void TEST_ASSERT_PIPE_HANDLE(pipe_handle_t x, pipe_handle_t y) +{ + TEST_ASSERT_EQUAL(x.dev_addr , y.dev_addr); + TEST_ASSERT_EQUAL(x.xfer_type , y.xfer_type); + TEST_ASSERT_EQUAL(x.index , y.index); +} + void test_keyboard_no_instances_invalid_para(void) { tusbh_device_get_state_IgnoreAndReturn(TUSB_DEVICE_STATE_UNPLUG); @@ -114,12 +111,17 @@ void test_keyboard_no_instances_invalid_para(void) void test_keyboard_open_ok(void) { uint16_t length=0; - tusbh_device_get_state_IgnoreAndReturn(TUSB_DEVICE_STATE_CONFIGURED); - TEST_ASSERT_EQUAL(0, tusbh_hid_keyboard_no_instances(dev_addr)); + pipe_handle_t pipe_hdl = {.dev_addr = dev_addr, .xfer_type = TUSB_XFER_INTERRUPT, .index = 1}; + + hcd_pipe_open_ExpectAndReturn(dev_addr, p_kdb_endpoint_desc, TUSB_CLASS_HID, pipe_hdl); + + //------------- Code Under TEST -------------// + TEST_ASSERT_EQUAL(TUSB_ERROR_NONE, hidh_keyboard_open_subtask(dev_addr, (uint8_t*) p_kbd_interface_desc, &length)); - TEST_ASSERT_EQUAL(TUSB_ERROR_NONE, hidh_keyboard_open_subtask(dev_addr, (uint8_t*) &kbd_descriptor, &length)); tusbh_device_get_state_IgnoreAndReturn(TUSB_DEVICE_STATE_CONFIGURED); - TEST_ASSERT_EQUAL(1, tusbh_hid_keyboard_no_instances(dev_addr)); + TEST_ASSERT_EQUAL(2, tusbh_hid_keyboard_no_instances(dev_addr)); // init instance to 1 + TEST_ASSERT_PIPE_HANDLE(pipe_hdl, p_hidh_kbd_interface->pipe_in); + TEST_ASSERT_EQUAL(8, p_hidh_kbd_interface->report_size); } void test_keyboard_init(void) @@ -157,13 +159,6 @@ void test_keyboard_get_device_not_ready(void) TEST_ASSERT_EQUAL(TUSB_ERROR_DEVICE_NOT_READY, tusbh_hid_keyboard_get(dev_addr, 0, &report)); // device not mounted } -void test_keyboard_get_class_not_supported() -{ - tusbh_device_get_state_IgnoreAndReturn(TUSB_DEVICE_STATE_CONFIGURED); - p_hidh_kbd_interface->pipe_in = (pipe_handle_t) { 0 }; - TEST_ASSERT_EQUAL(TUSB_ERROR_CLASS_DEVICE_DONT_SUPPORT, tusbh_hid_keyboard_get(dev_addr, instance_num, &report)); -} - void test_keyboard_get_report_xfer_failed() { tusbh_device_get_state_IgnoreAndReturn(TUSB_DEVICE_STATE_CONFIGURED); diff --git a/tests/test/support/descriptor_test.h b/tests/test/support/descriptor_test.h index 24a45f10d..a87dd30bf 100644 --- a/tests/test/support/descriptor_test.h +++ b/tests/test/support/descriptor_test.h @@ -100,6 +100,7 @@ typedef struct extern tusb_descriptor_device_t const desc_device; extern app_configuration_desc_t const desc_configuration; +extern const uint8_t keyboard_report_descriptor[]; #ifdef __cplusplus } |
