1 /*-----------------------------------------------------------------------------
3 * Purpose: Driver validation test cases entry point
4 *----------------------------------------------------------------------------
5 * Copyright(c) KEIL - An ARM Company
6 *----------------------------------------------------------------------------*/
9 #include "RTE_Components.h"
10 #include "DV_Framework.h"
11 #include "DV_Config.h"
13 /*-----------------------------------------------------------------------------
14 * Variables declarations
15 *----------------------------------------------------------------------------*/
17 const uint32_t BUFFER[] = {
18 #if (BUFFER_ELEM_1_32!=0)
19 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,
21 #if (BUFFER_ELEM_512!=0)
24 #if (BUFFER_ELEM_1024!=0)
27 #if (BUFFER_ELEM_4096!=0)
30 #if (BUFFER_ELEM_32768!=0)
34 const uint32_t BUFFER_NUM = ARRAY_SIZE(BUFFER);
36 /*-----------------------------------------------------------------------------
37 * Init/Uninit test suite
38 *----------------------------------------------------------------------------*/
39 #ifdef RTE_CMSIS_DV_WIFI
40 static void TS_Init_WiFi (void) {
41 WIFI_DV_Initialize ();
43 static void TS_Uninit_WiFi (void) {
44 WIFI_DV_Uninitialize ();
48 /*-----------------------------------------------------------------------------
50 *----------------------------------------------------------------------------*/
51 #ifdef RTE_CMSIS_DV_SPI
52 static TEST_CASE TC_List_SPI[] = {
53 TCD ( SPI_GetCapabilities, SPI_GETCAPABILITIES_EN ),
54 TCD ( SPI_Initialization, SPI_INITIALIZATION_EN ),
55 TCD ( SPI_PowerControl, SPI_POWERCONTROL_EN ),
56 TCD ( SPI_Config_PolarityPhase, SPI_CONFIG_POLARITYPHASE_EN ),
57 TCD ( SPI_Config_DataBits, SPI_CONFIG_DATABITS_EN ),
58 TCD ( SPI_Config_BitOrder, SPI_CONFIG_BITORDER_EN ),
59 TCD ( SPI_Config_SSMode, SPI_CONFIG_SSMODE_EN ),
60 TCD ( SPI_Config_BusSpeed, SPI_CONFIG_BUSSPEED_EN ),
61 TCD ( SPI_Config_CommonParams, SPI_CONFIG_COMMONPARAMS_EN ),
62 TCD ( SPI_Send, SPI_SEND_EN ),
63 TCD ( SPI_Receive, SPI_RECEIVE_EN ),
64 TCD ( SPI_Loopback_CheckBusSpeed, SPI_LOOPBACK_CHECKBUSSPEED_EN ),
65 TCD ( SPI_Loopback_Transfer, SPI_LOOPBACK_TRANSFER_EN ),
66 TCD ( SPI_CheckInvalidInit, SPI_CHECKINVALIDINIT_EN ),
70 #ifdef RTE_CMSIS_DV_USART
71 static TEST_CASE TC_List_USART[] = {
72 TCD ( USART_GetCapabilities, USART_GETCAPABILITIES_EN ),
73 TCD ( USART_Initialization, USART_INITIALIZATION_EN ),
74 TCD ( USART_PowerControl, USART_POWERCONTROL_EN ),
75 TCD ( USART_Config_PolarityPhase, USART_CONFIG_POLARITYPHASE_EN ),
76 TCD ( USART_Config_DataBits, USART_CONFIG_DATABITS_EN ),
77 TCD ( USART_Config_StopBits, USART_CONFIG_STOPBITS_EN ),
78 TCD ( USART_Config_Parity, USART_CONFIG_PARITY_EN ),
79 TCD ( USART_Config_Baudrate, USART_CONFIG_BAUDRATE_EN ),
80 TCD ( USART_Config_CommonParams, USART_CONFIG_COMMONPARAMS_EN ),
81 TCD ( USART_Send, USART_SEND_EN ),
82 TCD ( USART_AsynchronousReceive, USART_ASYNCHRONOUSRECEIVE_EN ),
83 TCD ( USART_Loopback_CheckBaudrate, USART_LOOPBACK_CHECKBAUDRATE_EN ),
84 TCD ( USART_Loopback_Transfer, USART_LOOPBACK_TRANSFER_EN ),
85 TCD ( USART_CheckInvalidInit, USART_CHECKINVALIDINIT_EN ),
89 #ifdef RTE_CMSIS_DV_ETH
90 static TEST_CASE TC_List_ETH[] = {
91 TCD ( ETH_MAC_GetCapabilities, ETH_MAC_GETCAPABILITIES_EN ),
92 TCD ( ETH_MAC_Initialization, ETH_MAC_INITIALIZATION_EN ),
93 TCD ( ETH_MAC_PowerControl, ETH_MAC_POWERCONTROL_EN ),
94 TCD ( ETH_MAC_SetBusSpeed, ETH_MAC_SETBUSSPEED_EN ),
95 TCD ( ETH_MAC_Config_Mode, ETH_MAC_CONFIG_MODE_EN ),
96 TCD ( ETH_MAC_Config_CommonParams, ETH_MAC_CONFIG_COMMONPARAMS_EN ),
97 TCD ( ETH_MAC_PTP_ControlTimer, ETH_MAC_PTP_CONTROLTIMER_EN ),
98 TCD ( ETH_PHY_Initialization, ETH_PHY_INITIALIZATION_EN ),
99 TCD ( ETH_PHY_PowerControl, ETH_PHY_POWERCONTROL_EN ),
100 TCD ( ETH_PHY_Config, ETH_PHY_CONFIG_EN ),
101 TCD ( ETH_Loopback_Transfer, ETH_LOOPBACK_TRANSFER_EN ),
102 TCD ( ETH_Loopback_PTP, ETH_LOOPBACK_PTP_EN ),
103 TCD ( ETH_PHY_CheckInvalidInit, ETH_PHY_CHECKINVALIDINIT_EN ),
104 TCD ( ETH_MAC_CheckInvalidInit, ETH_MAC_CHECKINVALIDINIT_EN ),
108 #ifdef RTE_CMSIS_DV_I2C
109 static TEST_CASE TC_List_I2C[] = {
110 TCD ( I2C_GetCapabilities, I2C_GETCAPABILITIES_EN ),
111 TCD ( I2C_Initialization, I2C_INITIALIZATION_EN ),
112 TCD ( I2C_PowerControl, I2C_POWERCONTROL_EN ),
113 TCD ( I2C_SetBusSpeed, I2C_SETBUSSPEED_EN ),
114 TCD ( I2C_SetOwnAddress, I2C_SETOWNADDRESS_EN ),
115 TCD ( I2C_BusClear, I2C_BUSCLEAR_EN ),
116 TCD ( I2C_AbortTransfer, I2C_ABORTTRANSFER_EN ),
117 TCD ( I2C_CheckInvalidInit, I2C_CHECKINVALIDINIT_EN ),
121 #ifdef RTE_CMSIS_DV_MCI
122 static TEST_CASE TC_List_MCI[] = {
123 TCD ( MCI_GetCapabilities, MCI_GETCAPABILITIES_EN ),
124 TCD ( MCI_Initialization, MCI_INITIALIZATION_EN ),
125 TCD ( MCI_PowerControl, MCI_POWERCONTROL_EN ),
126 TCD ( MCI_SetBusSpeedMode, MCI_SETBUSSPEEDMODE_EN ),
127 TCD ( MCI_Config_DataWidth, MCI_CONFIG_DATAWIDTH_EN ),
128 TCD ( MCI_Config_CmdLineMode, MCI_CONFIG_CMDLINEMODE_EN ),
129 TCD ( MCI_Config_DriverStrength, MCI_CONFIG_DRIVERSTRENGTH_EN ),
130 TCD ( MCI_CheckInvalidInit, MCI_CHECKINVALIDINIT_EN ),
134 #ifdef RTE_CMSIS_DV_USBD
135 static TEST_CASE TC_List_USBD[] = {
136 TCD ( USBD_GetCapabilities, USBD_GETCAPABILITIES_EN ),
137 TCD ( USBD_Initialization, USBD_INITIALIZATION_EN ),
138 TCD ( USBD_PowerControl, USBD_POWERCONTROL_EN ),
139 TCD ( USBD_CheckInvalidInit, USBD_CHECKINVALIDINIT_EN ),
143 #ifdef RTE_CMSIS_DV_USBH
144 static TEST_CASE TC_List_USBH[] = {
145 TCD ( USBH_GetCapabilities, USBH_GETCAPABILITIES_EN ),
146 TCD ( USBH_Initialization, USBH_INITIALIZATION_EN ),
147 TCD ( USBH_PowerControl, USBH_POWERCONTROL_EN ),
148 TCD ( USBH_CheckInvalidInit, USBH_CHECKINVALIDINIT_EN ),
152 #ifdef RTE_CMSIS_DV_CAN
153 static TEST_CASE TC_List_CAN[] = {
154 TCD ( CAN_GetCapabilities, CAN_GETCAPABILITIES_EN ),
155 TCD ( CAN_Initialization, CAN_INITIALIZATION_EN ),
156 TCD ( CAN_PowerControl, CAN_POWERCONTROL_EN ),
157 TCD ( CAN_Loopback_CheckBitrate, CAN_LOOPBACK_CHECK_BR_EN ),
158 TCD ( CAN_Loopback_CheckBitrateFD, CAN_LOOPBACK_CHECK_BR_FD_EN ),
159 TCD ( CAN_Loopback_Transfer, CAN_LOOPBACK_TRANSFER_EN ),
160 TCD ( CAN_Loopback_TransferFD, CAN_LOOPBACK_TRANSFER_FD_EN ),
164 #ifdef RTE_CMSIS_DV_WIFI
165 static TEST_CASE TC_List_WiFi[] = {
166 /* WiFi Control tests */
167 #if ( WIFI_CONTROL_EN != 0)
168 TCD ( WIFI_GetVersion, WIFI_GETVERSION_EN ),
169 TCD ( WIFI_GetCapabilities, WIFI_GETCAPABILITIES_EN ),
170 TCD ( WIFI_Initialize_Uninitialize, WIFI_INIT_UNINIT_EN ),
171 TCD ( WIFI_PowerControl, WIFI_POWERCONTROL_EN ),
172 TCD ( WIFI_GetModuleInfo, WIFI_GETMODULEINFO_EN ),
174 /* WiFi Management tests */
175 #if ( WIFI_MANAGEMENT_EN != 0)
176 TCD ( WIFI_SetOption_GetOption, WIFI_SETGETOPTION_EN ),
177 TCD ( WIFI_Scan, WIFI_SCAN_EN ),
178 TCD ( WIFI_Activate_Deactivate, WIFI_ACT_DEACT_EN ),
179 TCD ( WIFI_IsConnected, WIFI_ISCONNECTED_EN ),
180 TCD ( WIFI_GetNetInfo, WIFI_GETNETINFO_EN ),
182 /* WiFi Management tests requiring user interaction */
183 #if ( WIFI_MANAGEMENT_USER_EN != 0)
184 TCD ( WIFI_Activate_AP, WIFI_ACT_AP ),
185 #if ( WIFI_WPS_USER_EN != 0)
186 TCD ( WIFI_Activate_Station_WPS_PBC, WIFI_ACT_STA_WPS_PBC ),
187 TCD ( WIFI_Activate_Station_WPS_PIN, WIFI_ACT_STA_WPS_PIN ),
188 TCD ( WIFI_Activate_AP_WPS_PBC, WIFI_ACT_AP_WPS_PBC ),
189 TCD ( WIFI_Activate_AP_WPS_PIN, WIFI_ACT_AP_WPS_PIN ),
192 /* WiFi Socket API tests */
193 #if ( WIFI_SOCKET_EN != 0)
194 TCD ( WIFI_SocketCreate, WIFI_SOCKETCREATE_EN ),
195 TCD ( WIFI_SocketBind, WIFI_SOCKETBIND_EN ),
196 TCD ( WIFI_SocketListen, WIFI_SOCKETLISTEN_EN ),
197 TCD ( WIFI_SocketAccept, WIFI_SOCKETACCEPT_EN ),
198 TCD ( WIFI_SocketConnect, WIFI_SOCKETCONNECT_EN ),
199 TCD ( WIFI_SocketRecv, WIFI_SOCKETRECV_EN ),
200 TCD ( WIFI_SocketRecvFrom, WIFI_SOCKETRECVFROM_EN ),
201 TCD ( WIFI_SocketSend, WIFI_SOCKETSEND_EN ),
202 TCD ( WIFI_SocketSendTo, WIFI_SOCKETSENDTO_EN ),
203 TCD ( WIFI_SocketGetSockName, WIFI_SOCKETGETSOCKNAME_EN ),
204 TCD ( WIFI_SocketGetPeerName, WIFI_SOCKETGETPEERNAME_EN ),
205 TCD ( WIFI_SocketGetOpt, WIFI_SOCKETGETOPT_EN ),
206 TCD ( WIFI_SocketSetOpt, WIFI_SOCKETSETOPT_EN ),
207 TCD ( WIFI_SocketClose, WIFI_SOCKETCLOSE_EN ),
208 TCD ( WIFI_SocketGetHostByName, WIFI_SOCKETGETHOSTBYNAME_EN ),
209 TCD ( WIFI_Ping, WIFI_PING_EN ),
211 /* WiFi Socket Operation tests */
212 #if ( WIFI_SOCKET_OP_EN != 0)
213 TCD ( WIFI_Transfer_Fixed, WIFI_TRANSFER_FIXED_EN ),
214 TCD ( WIFI_Transfer_Incremental, WIFI_TRANSFER_INCREMENTAL_EN ),
215 TCD ( WIFI_Send_Fragmented, WIFI_SEND_FRAGMENTED_EN ),
216 TCD ( WIFI_Recv_Fragmented, WIFI_RECV_FRAGMENTED_EN ),
217 TCD ( WIFI_Test_Speed, WIFI_TEST_SPEED_EN ),
218 TCD ( WIFI_Concurrent_Socket, WIFI_CONCURRENT_SOCKET_EN ),
219 TCD ( WIFI_Downstream_Rate, WIFI_DOWNSTREAM_RATE_EN ),
220 TCD ( WIFI_Upstream_Rate, WIFI_UPSTREAM_RATE_EN ),
225 #if defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
226 #pragma clang diagnostic push
227 #pragma clang diagnostic ignored "-Wdate-time"
229 /*-----------------------------------------------------------------------------
230 * Test suite description
231 *----------------------------------------------------------------------------*/
233 #ifdef RTE_CMSIS_DV_SPI /* SPI test group */
235 __FILE__, __DATE__, __TIME__,
236 "CMSIS-Driver SPI Test Report",
241 ARRAY_SIZE (TC_List_SPI),
245 #ifdef RTE_CMSIS_DV_USART /* USART test group */
247 __FILE__, __DATE__, __TIME__,
248 "CMSIS-Driver USART Test Report",
253 ARRAY_SIZE (TC_List_USART),
257 #ifdef RTE_CMSIS_DV_ETH /* ETH test group */
259 __FILE__, __DATE__, __TIME__,
260 "CMSIS-Driver ETH Test Report",
265 ARRAY_SIZE (TC_List_ETH),
269 #ifdef RTE_CMSIS_DV_I2C /* I2C test group */
271 __FILE__, __DATE__, __TIME__,
272 "CMSIS-Driver I2C (API v2.3) Test Report",
277 ARRAY_SIZE (TC_List_I2C),
281 #ifdef RTE_CMSIS_DV_MCI /* MCI test group */
283 __FILE__, __DATE__, __TIME__,
284 "CMSIS-Driver MCI Test Report",
289 ARRAY_SIZE (TC_List_MCI),
293 #ifdef RTE_CMSIS_DV_USBD /* USBD test group */
295 __FILE__, __DATE__, __TIME__,
296 "CMSIS-Driver USBD Test Report",
301 ARRAY_SIZE (TC_List_USBD),
305 #ifdef RTE_CMSIS_DV_USBH /* USBH test group */
307 __FILE__, __DATE__, __TIME__,
308 "CMSIS-Driver USBH Test Report",
313 ARRAY_SIZE (TC_List_USBH),
317 #ifdef RTE_CMSIS_DV_CAN /* CAN test group */
319 __FILE__, __DATE__, __TIME__,
320 "CMSIS-Driver CAN Test Report",
325 ARRAY_SIZE (TC_List_CAN),
329 #ifdef RTE_CMSIS_DV_WIFI /* WIFI test group */
331 __FILE__, __DATE__, __TIME__,
332 "CMSIS-Driver WiFi Test Report",
337 ARRAY_SIZE (TC_List_WiFi),
342 /* Number of test groups in suite */
343 uint32_t tg_cnt = sizeof(ts)/sizeof(ts[0]);
345 #if defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
346 #pragma clang diagnostic pop