1 /*-----------------------------------------------------------------------------
3 * Purpose: USB Host test cases
4 *----------------------------------------------------------------------------
5 * Copyright(c) KEIL - An ARM Company
6 *----------------------------------------------------------------------------*/
10 #include "DV_Config.h"
11 #include "DV_Framework.h"
12 #include "Driver_USBH.h"
17 // Register Driver_USBH#
18 extern ARM_DRIVER_USBH CREATE_SYMBOL(Driver_USBH, DRV_USBH);
19 static ARM_DRIVER_USBH *drv = &CREATE_SYMBOL(Driver_USBH, DRV_USBH);
20 static ARM_USBH_CAPABILITIES capab;
23 static uint8_t volatile PortEvent;
24 static uint8_t volatile PipeEvent;
27 static void USB_PortEvent (uint8_t port, uint32_t event) {
32 static void USB_PipeEvent (ARM_USBH_PIPE_HANDLE pipe_hndl, uint32_t event) {
37 /*-----------------------------------------------------------------------------
39 *----------------------------------------------------------------------------*/
41 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
43 \defgroup usbh_funcs USB Host Validation
44 \brief USB Host test cases
46 The USB Host validation test checks the API interface compliance only.
50 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
52 \brief Test case: USBH_GetCapabilities
54 The test case \b USBH_GetCapabilities verifies the function \b GetCapabilities.
56 void USBH_GetCapabilities (void) {
57 /* Get USBH capabilities */
58 capab = drv->GetCapabilities();
59 TEST_ASSERT(&capab != NULL);
62 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
64 \brief Test case: USBH_Initialization
66 The test case \b USBH_Initialization verifies the USBH functions with the sequence:
67 - \b Initialize without callback
69 - \b Initialize with callback
72 void USBH_Initialization (void) {
74 /* Initialize without callback */
75 TEST_ASSERT(drv->Initialize(NULL, NULL) == ARM_DRIVER_OK);
78 TEST_ASSERT(drv->Uninitialize() == ARM_DRIVER_OK);
80 /* Initialize with callback */
81 TEST_ASSERT(drv->Initialize(USB_PortEvent, USB_PipeEvent) == ARM_DRIVER_OK);
84 TEST_ASSERT(drv->Uninitialize() == ARM_DRIVER_OK);
87 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
89 \brief Test case: USBH_CheckInvalidInit
91 The test case \b USBH_CheckInvalidInit verifies the driver behaviour when receiving an invalid initialization sequence:
93 - \b PowerControl with Power off
94 - \b PowerControl with Power on
95 - \b PowerControl with Power off
98 void USBH_CheckInvalidInit (void) {
101 TEST_ASSERT(drv->Uninitialize() == ARM_DRIVER_OK);
104 TEST_ASSERT(drv->PowerControl (ARM_POWER_OFF) == ARM_DRIVER_OK);
106 /* Try to power on */
107 TEST_ASSERT(drv->PowerControl (ARM_POWER_FULL) != ARM_DRIVER_OK);
110 TEST_ASSERT(drv->PowerControl (ARM_POWER_OFF) == ARM_DRIVER_OK);
113 TEST_ASSERT(drv->Uninitialize() == ARM_DRIVER_OK);
116 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
118 \brief Test case: USBH_PowerControl
120 The test case \b USBH_PowerControl verifies the \b PowerControl function with the sequence:
127 void USBH_PowerControl (void) {
130 /* Initialize with callback */
131 TEST_ASSERT(drv->Initialize(USB_PortEvent, USB_PipeEvent) == ARM_DRIVER_OK);
134 TEST_ASSERT(drv->PowerControl (ARM_POWER_FULL) == ARM_DRIVER_OK);
137 val = drv->PowerControl (ARM_POWER_LOW);
138 if (val == ARM_DRIVER_ERROR_UNSUPPORTED) { TEST_MESSAGE("[WARNING] Low power is not supported"); }
139 else { TEST_ASSERT(val == ARM_DRIVER_OK); }
142 TEST_ASSERT(drv->PowerControl (ARM_POWER_OFF) == ARM_DRIVER_OK);
145 TEST_ASSERT(drv->Uninitialize() == ARM_DRIVER_OK);
151 // end of group usbh_funcs