|
|
@@ -36,23 +36,24 @@
|
|
|
*/
|
|
|
/**************************************************************************/
|
|
|
|
|
|
+#include <stdlib.h>
|
|
|
#include "unity.h"
|
|
|
#include "errors.h"
|
|
|
+#include "type_helper.h"
|
|
|
|
|
|
#include "mock_osal.h"
|
|
|
#include "usbh.h"
|
|
|
+#include "usbh_hcd.h"
|
|
|
#include "mock_hcd.h"
|
|
|
#include "usbh_hcd.h"
|
|
|
|
|
|
#include "mock_tusb_callback.h"
|
|
|
#include "mock_hid_host.h"
|
|
|
|
|
|
-extern usbh_device_info_t usbh_devices[TUSB_CFG_HOST_DEVICE_MAX+1];
|
|
|
uint8_t dev_addr;
|
|
|
void setUp(void)
|
|
|
{
|
|
|
dev_addr = RANDOM(TUSB_CFG_HOST_DEVICE_MAX)+1;
|
|
|
- memset(usbh_devices, 0, (TUSB_CFG_HOST_DEVICE_MAX+1)*sizeof(usbh_device_info_t));
|
|
|
}
|
|
|
|
|
|
void tearDown(void)
|
|
|
@@ -88,12 +89,7 @@ void test_usbh_init_hcd_failed(void)
|
|
|
void test_usbh_init_enum_task_create_failed(void)
|
|
|
{
|
|
|
hcd_init_ExpectAndReturn(TUSB_ERROR_NONE);
|
|
|
- for (uint8_t i=0; i<TUSB_CFG_HOST_DEVICE_MAX+1; i++)
|
|
|
- {
|
|
|
- osal_semaphore_handle_t sem_hdl_dummy = 0x2233;
|
|
|
- osal_semaphore_create_IgnoreAndReturn(sem_hdl_dummy);
|
|
|
- }
|
|
|
-
|
|
|
+ osal_semaphore_create_IgnoreAndReturn( (osal_semaphore_handle_t) 0x1234);
|
|
|
osal_task_create_IgnoreAndReturn(TUSB_ERROR_OSAL_TASK_FAILED);
|
|
|
TEST_ASSERT_EQUAL(TUSB_ERROR_OSAL_TASK_FAILED, usbh_init());
|
|
|
}
|
|
|
@@ -101,12 +97,7 @@ void test_usbh_init_enum_task_create_failed(void)
|
|
|
void test_usbh_init_enum_queue_create_failed(void)
|
|
|
{
|
|
|
hcd_init_ExpectAndReturn(TUSB_ERROR_NONE);
|
|
|
- for (uint8_t i=0; i<TUSB_CFG_HOST_DEVICE_MAX+1; i++)
|
|
|
- {
|
|
|
- osal_semaphore_handle_t sem_hdl_dummy = 0x2233;
|
|
|
- osal_semaphore_create_IgnoreAndReturn(sem_hdl_dummy);
|
|
|
- }
|
|
|
-
|
|
|
+ osal_semaphore_create_IgnoreAndReturn( (osal_semaphore_handle_t) 0x1234);
|
|
|
osal_task_create_IgnoreAndReturn(TUSB_ERROR_NONE);
|
|
|
osal_queue_create_IgnoreAndReturn(NULL);
|
|
|
TEST_ASSERT_EQUAL(TUSB_ERROR_OSAL_QUEUE_FAILED, usbh_init());
|
|
|
@@ -121,29 +112,21 @@ void class_init_expect(void)
|
|
|
|
|
|
void test_usbh_init_ok(void)
|
|
|
{
|
|
|
- osal_queue_handle_t q_hdl_dummy = 0x1122;
|
|
|
-
|
|
|
- usbh_device_info_t device_info_zero[TUSB_CFG_HOST_DEVICE_MAX+1];
|
|
|
- memclr_(device_info_zero, sizeof(usbh_device_info_t)*(TUSB_CFG_HOST_DEVICE_MAX+1));
|
|
|
-
|
|
|
hcd_init_ExpectAndReturn(TUSB_ERROR_NONE);
|
|
|
|
|
|
- for (uint8_t i=0; i<TUSB_CFG_HOST_DEVICE_MAX+1; i++)
|
|
|
- {
|
|
|
- osal_semaphore_handle_t sem_hdl_dummy = 0x2233;
|
|
|
- osal_semaphore_create_IgnoreAndReturn(sem_hdl_dummy);
|
|
|
- device_info_zero[i].control.sem_hdl = sem_hdl_dummy;
|
|
|
- }
|
|
|
-
|
|
|
+ osal_semaphore_create_IgnoreAndReturn( (osal_semaphore_handle_t) 0x1234);
|
|
|
osal_task_create_IgnoreAndReturn(TUSB_ERROR_NONE);
|
|
|
- osal_queue_create_IgnoreAndReturn(q_hdl_dummy);
|
|
|
+ osal_queue_create_IgnoreAndReturn( (osal_queue_handle_t) 0x4566 );
|
|
|
|
|
|
class_init_expect();
|
|
|
|
|
|
+ //------------- code under test -------------//
|
|
|
TEST_ASSERT_EQUAL(TUSB_ERROR_NONE, usbh_init());
|
|
|
|
|
|
- TEST_ASSERT_EQUAL_MEMORY(device_info_zero, usbh_devices, sizeof(usbh_device_info_t)*(TUSB_CFG_HOST_DEVICE_MAX+1));
|
|
|
-
|
|
|
+ for (uint8_t i=0; i<TUSB_CFG_HOST_DEVICE_MAX+1; i++)
|
|
|
+ {
|
|
|
+ TEST_ASSERT_NOT_NULL(usbh_devices[i].control.sem_hdl);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
void class_close_expect(void)
|
|
|
@@ -156,7 +139,7 @@ void test_usbh_device_unplugged_isr_device_not_previously_mounted(void)
|
|
|
{
|
|
|
uint8_t dev_addr = 1;
|
|
|
|
|
|
- usbh_devices[dev_addr].state = TUSB_DEVICE_STATE_UNPLUG;
|
|
|
+ usbh_devices[dev_addr].state = TUSB_DEVICE_STATE_UNPLUG;
|
|
|
usbh_devices[dev_addr].core_id = 0;
|
|
|
usbh_devices[dev_addr].hub_addr = 0;
|
|
|
usbh_devices[dev_addr].hub_port = 0;
|
|
|
@@ -168,10 +151,10 @@ void test_usbh_device_unplugged_isr(void)
|
|
|
{
|
|
|
uint8_t dev_addr = 1;
|
|
|
|
|
|
- usbh_devices[dev_addr].state = TUSB_DEVICE_STATE_CONFIGURED;
|
|
|
- usbh_devices[dev_addr].core_id = 0;
|
|
|
- usbh_devices[dev_addr].hub_addr = 0;
|
|
|
- usbh_devices[dev_addr].hub_port = 0;
|
|
|
+ usbh_devices[dev_addr].state = TUSB_DEVICE_STATE_CONFIGURED;
|
|
|
+ usbh_devices[dev_addr].core_id = 0;
|
|
|
+ usbh_devices[dev_addr].hub_addr = 0;
|
|
|
+ usbh_devices[dev_addr].hub_port = 0;
|
|
|
usbh_devices[dev_addr].flag_supported_class = TUSB_CLASS_FLAG_HID;
|
|
|
|
|
|
class_close_expect();
|