1 /*-----------------------------------------------------------------------------
3 * Purpose: Driver validation test cases entry point
4 *----------------------------------------------------------------------------
5 * Copyright(c) KEIL - An ARM Company
6 *----------------------------------------------------------------------------*/
8 #include "RTE_Components.h"
9 #include "DV_Framework.h"
10 #include "DV_Config.h"
12 /*-----------------------------------------------------------------------------
13 * Variables declarations
14 *----------------------------------------------------------------------------*/
16 const uint32_t BUFFER[] = {
17 #if (BUFFER_ELEM_1_32!=0)
18 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,
20 #if (BUFFER_ELEM_512!=0)
23 #if (BUFFER_ELEM_1024!=0)
26 #if (BUFFER_ELEM_4096!=0)
29 #if (BUFFER_ELEM_32768!=0)
33 const uint32_t BUFFER_NUM = ARRAY_SIZE(BUFFER);
35 #ifdef RTE_CMSIS_DV_WIFI
36 /*-----------------------------------------------------------------------------
37 * Init/Uninit test suite: WiFi
38 *----------------------------------------------------------------------------*/
39 static void TS_Init_WiFi (void) {
40 WIFI_DV_Initialize ();
42 static void TS_Uninit_WiFi (void) {
43 WIFI_DV_Uninitialize ();
47 /*-----------------------------------------------------------------------------
49 *----------------------------------------------------------------------------*/
50 #ifdef RTE_CMSIS_DV_SPI
51 static TEST_CASE TC_List_SPI[] = {
52 TCD ( SPI_GetCapabilities, SPI_GETCAPABILITIES_EN ),
53 TCD ( SPI_Initialization, SPI_INITIALIZATION_EN ),
54 TCD ( SPI_PowerControl, SPI_POWERCONTROL_EN ),
55 TCD ( SPI_Config_PolarityPhase, SPI_CONFIG_POLARITYPHASE_EN ),
56 TCD ( SPI_Config_DataBits, SPI_CONFIG_DATABITS_EN ),
57 TCD ( SPI_Config_BitOrder, SPI_CONFIG_BITORDER_EN ),
58 TCD ( SPI_Config_SSMode, SPI_CONFIG_SSMODE_EN ),
59 TCD ( SPI_Config_BusSpeed, SPI_CONFIG_BUSSPEED_EN ),
60 TCD ( SPI_Config_CommonParams, SPI_CONFIG_COMMONPARAMS_EN ),
61 TCD ( SPI_Send, SPI_SEND_EN ),
62 TCD ( SPI_Receive, SPI_RECEIVE_EN ),
63 TCD ( SPI_Loopback_CheckBusSpeed, SPI_LOOPBACK_CHECKBUSSPEED_EN ),
64 TCD ( SPI_Loopback_Transfer, SPI_LOOPBACK_TRANSFER_EN ),
65 TCD ( SPI_CheckInvalidInit, SPI_CHECKINVALIDINIT_EN ),
69 #ifdef RTE_CMSIS_DV_USART
70 static TEST_CASE TC_List_USART[] = {
71 TCD ( USART_GetCapabilities, USART_GETCAPABILITIES_EN ),
72 TCD ( USART_Initialization, USART_INITIALIZATION_EN ),
73 TCD ( USART_PowerControl, USART_POWERCONTROL_EN ),
74 TCD ( USART_Config_PolarityPhase, USART_CONFIG_POLARITYPHASE_EN ),
75 TCD ( USART_Config_DataBits, USART_CONFIG_DATABITS_EN ),
76 TCD ( USART_Config_StopBits, USART_CONFIG_STOPBITS_EN ),
77 TCD ( USART_Config_Parity, USART_CONFIG_PARITY_EN ),
78 TCD ( USART_Config_Baudrate, USART_CONFIG_BAUDRATE_EN ),
79 TCD ( USART_Config_CommonParams, USART_CONFIG_COMMONPARAMS_EN ),
80 TCD ( USART_Send, USART_SEND_EN ),
81 TCD ( USART_Loopback_CheckBaudrate, USART_LOOPBACK_CHECKBAUDRATE_EN ),
82 TCD ( USART_Loopback_Transfer, USART_LOOPBACK_TRANSFER_EN ),
83 TCD ( USART_CheckInvalidInit, USART_CHECKINVALIDINIT_EN ),
87 #ifdef RTE_CMSIS_DV_ETH
88 static TEST_CASE TC_List_ETH[] = {
89 TCD ( ETH_MAC_GetCapabilities, ETH_MAC_GETCAPABILITIES_EN ),
90 TCD ( ETH_MAC_Initialization, ETH_MAC_INITIALIZATION_EN ),
91 TCD ( ETH_MAC_PowerControl, ETH_MAC_POWERCONTROL_EN ),
92 TCD ( ETH_MAC_SetBusSpeed, ETH_MAC_SETBUSSPEED_EN ),
93 TCD ( ETH_MAC_Config_Mode, ETH_MAC_CONFIG_MODE_EN ),
94 TCD ( ETH_MAC_Config_CommonParams, ETH_MAC_CONFIG_COMMONPARAMS_EN ),
95 TCD ( ETH_MAC_PTP_ControlTimer, ETH_MAC_PTP_CONTROLTIMER_EN ),
96 TCD ( ETH_PHY_Initialization, ETH_PHY_INITIALIZATION_EN ),
97 TCD ( ETH_PHY_PowerControl, ETH_PHY_POWERCONTROL_EN ),
98 TCD ( ETH_PHY_Config, ETH_PHY_CONFIG_EN ),
99 TCD ( ETH_Loopback_Transfer, ETH_LOOPBACK_TRANSFER_EN ),
100 TCD ( ETH_Loopback_PTP, ETH_LOOPBACK_PTP_EN ),
101 TCD ( ETH_PHY_CheckInvalidInit, ETH_PHY_CHECKINVALIDINIT_EN ),
102 TCD ( ETH_MAC_CheckInvalidInit, ETH_MAC_CHECKINVALIDINIT_EN ),
106 #ifdef RTE_CMSIS_DV_I2C
107 static TEST_CASE TC_List_I2C[] = {
108 TCD ( I2C_GetCapabilities, I2C_GETCAPABILITIES_EN ),
109 TCD ( I2C_Initialization, I2C_INITIALIZATION_EN ),
110 TCD ( I2C_PowerControl, I2C_POWERCONTROL_EN ),
111 TCD ( I2C_SetBusSpeed, I2C_SETBUSSPEED_EN ),
112 TCD ( I2C_SetOwnAddress, I2C_SETOWNADDRESS_EN ),
113 TCD ( I2C_BusClear, I2C_BUSCLEAR_EN ),
114 TCD ( I2C_AbortTransfer, I2C_ABORTTRANSFER_EN ),
115 TCD ( I2C_CheckInvalidInit, I2C_CHECKINVALIDINIT_EN ),
119 #ifdef RTE_CMSIS_DV_MCI
120 static TEST_CASE TC_List_MCI[] = {
121 TCD ( MCI_GetCapabilities, MCI_GETCAPABILITIES_EN ),
122 TCD ( MCI_Initialization, MCI_INITIALIZATION_EN ),
123 TCD ( MCI_PowerControl, MCI_POWERCONTROL_EN ),
124 TCD ( MCI_SetBusSpeedMode, MCI_SETBUSSPEEDMODE_EN ),
125 TCD ( MCI_Config_DataWidth, MCI_CONFIG_DATAWIDTH_EN ),
126 TCD ( MCI_Config_CmdLineMode, MCI_CONFIG_CMDLINEMODE_EN ),
127 TCD ( MCI_Config_DriverStrength, MCI_CONFIG_DRIVERSTRENGTH_EN ),
128 TCD ( MCI_CheckInvalidInit, MCI_CHECKINVALIDINIT_EN ),
132 #ifdef RTE_CMSIS_DV_USBD
133 static TEST_CASE TC_List_USBD[] = {
134 TCD ( USBD_GetCapabilities, USBD_GETCAPABILITIES_EN ),
135 TCD ( USBD_Initialization, USBD_INITIALIZATION_EN ),
136 TCD ( USBD_PowerControl, USBD_POWERCONTROL_EN ),
137 TCD ( USBD_CheckInvalidInit, USBD_CHECKINVALIDINIT_EN ),
141 #ifdef RTE_CMSIS_DV_USBH
142 static TEST_CASE TC_List_USBH[] = {
143 TCD ( USBH_GetCapabilities, USBH_GETCAPABILITIES_EN ),
144 TCD ( USBH_Initialization, USBH_INITIALIZATION_EN ),
145 TCD ( USBH_PowerControl, USBH_POWERCONTROL_EN ),
146 TCD ( USBH_CheckInvalidInit, USBH_CHECKINVALIDINIT_EN ),
150 #ifdef RTE_CMSIS_DV_CAN
151 static TEST_CASE TC_List_CAN[] = {
152 TCD ( CAN_GetCapabilities, CAN_GETCAPABILITIES_EN ),
153 TCD ( CAN_Initialization, CAN_INITIALIZATION_EN ),
154 TCD ( CAN_PowerControl, CAN_POWERCONTROL_EN ),
155 TCD ( CAN_Loopback_CheckBitrate, CAN_LOOPBACK_CHECK_BR_EN ),
156 TCD ( CAN_Loopback_CheckBitrateFD, CAN_LOOPBACK_CHECK_BR_FD_EN ),
157 TCD ( CAN_Loopback_Transfer, CAN_LOOPBACK_TRANSFER_EN ),
158 TCD ( CAN_Loopback_TransferFD, CAN_LOOPBACK_TRANSFER_FD_EN ),
162 #ifdef RTE_CMSIS_DV_WIFI
163 static TEST_CASE TC_List_WiFi[] = {
164 /* WiFi Control tests */
165 #if ( WIFI_CONTROL_EN != 0)
166 TCD ( WIFI_GetVersion, WIFI_GETVERSION_EN ),
167 TCD ( WIFI_GetCapabilities, WIFI_GETCAPABILITIES_EN ),
168 TCD ( WIFI_Initialize_Uninitialize, WIFI_INIT_UNINIT_EN ),
169 TCD ( WIFI_PowerControl, WIFI_POWERCONTROL_EN ),
170 TCD ( WIFI_GetModuleInfo, WIFI_GETMODULEINFO_EN ),
172 /* WiFi Management tests */
173 #if ( WIFI_MANAGEMENT_EN != 0)
174 TCD ( WIFI_SetOption_GetOption, WIFI_SETGETOPTION_EN ),
175 TCD ( WIFI_Scan, WIFI_SCAN_EN ),
176 TCD ( WIFI_Activate_Deactivate, WIFI_ACT_DEACT_EN ),
177 TCD ( WIFI_IsConnected, WIFI_ISCONNECTED_EN ),
178 TCD ( WIFI_GetNetInfo, WIFI_GETNETINFO_EN ),
180 /* WiFi Management tests requiring user interaction */
181 #if ( WIFI_MANAGEMENT_USER_EN != 0)
182 TCD ( WIFI_Activate_AP, WIFI_ACT_AP ),
183 #if ( WIFI_WPS_USER_EN != 0)
184 TCD ( WIFI_Activate_Station_WPS_PBC, WIFI_ACT_STA_WPS_PBC ),
185 TCD ( WIFI_Activate_Station_WPS_PIN, WIFI_ACT_STA_WPS_PIN ),
186 TCD ( WIFI_Activate_AP_WPS_PBC, WIFI_ACT_AP_WPS_PBC ),
187 TCD ( WIFI_Activate_AP_WPS_PIN, WIFI_ACT_AP_WPS_PIN ),
190 /* WiFi Socket API tests */
191 #if ( WIFI_SOCKET_EN != 0)
192 TCD ( WIFI_SocketCreate, WIFI_SOCKETCREATE_EN ),
193 TCD ( WIFI_SocketBind, WIFI_SOCKETBIND_EN ),
194 TCD ( WIFI_SocketListen, WIFI_SOCKETLISTEN_EN ),
195 TCD ( WIFI_SocketAccept, WIFI_SOCKETACCEPT_EN ),
196 TCD ( WIFI_SocketConnect, WIFI_SOCKETCONNECT_EN ),
197 TCD ( WIFI_SocketRecv, WIFI_SOCKETRECV_EN ),
198 TCD ( WIFI_SocketRecvFrom, WIFI_SOCKETRECVFROM_EN ),
199 TCD ( WIFI_SocketSend, WIFI_SOCKETSEND_EN ),
200 TCD ( WIFI_SocketSendTo, WIFI_SOCKETSENDTO_EN ),
201 TCD ( WIFI_SocketGetSockName, WIFI_SOCKETGETSOCKNAME_EN ),
202 TCD ( WIFI_SocketGetPeerName, WIFI_SOCKETGETPEERNAME_EN ),
203 TCD ( WIFI_SocketGetOpt, WIFI_SOCKETGETOPT_EN ),
204 TCD ( WIFI_SocketSetOpt, WIFI_SOCKETSETOPT_EN ),
205 TCD ( WIFI_SocketClose, WIFI_SOCKETCLOSE_EN ),
206 TCD ( WIFI_SocketGetHostByName, WIFI_SOCKETGETHOSTBYNAME_EN ),
207 TCD ( WIFI_Ping, WIFI_PING_EN ),
209 /* WiFi Socket Operation tests */
210 #if ( WIFI_SOCKET_OP_EN != 0)
211 TCD ( WIFI_Transfer_Fixed, WIFI_TRANSFER_FIXED_EN ),
212 TCD ( WIFI_Transfer_Incremental, WIFI_TRANSFER_INCREMENTAL_EN ),
213 TCD ( WIFI_Send_Fragmented, WIFI_SEND_FRAGMENTED_EN ),
214 TCD ( WIFI_Recv_Fragmented, WIFI_RECV_FRAGMENTED_EN ),
215 TCD ( WIFI_Test_Speed, WIFI_TEST_SPEED_EN ),
216 TCD ( WIFI_Concurrent_Socket, WIFI_CONCURRENT_SOCKET_EN ),
217 TCD ( WIFI_Downstream_Rate, WIFI_DOWNSTREAM_RATE_EN ),
218 TCD ( WIFI_Upstream_Rate, WIFI_UPSTREAM_RATE_EN ),
223 #if defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
224 #pragma clang diagnostic push
225 #pragma clang diagnostic ignored "-Wdate-time"
227 /*-----------------------------------------------------------------------------
228 * Test suite description
229 *----------------------------------------------------------------------------*/
231 #ifdef RTE_CMSIS_DV_SPI /* SPI test group */
233 __FILE__, __DATE__, __TIME__,
234 "CMSIS-Driver SPI Test Report",
239 ARRAY_SIZE (TC_List_SPI),
243 #ifdef RTE_CMSIS_DV_USART /* USART test group */
245 __FILE__, __DATE__, __TIME__,
246 "CMSIS-Driver USART Test Report",
251 ARRAY_SIZE (TC_List_USART),
255 #ifdef RTE_CMSIS_DV_ETH /* ETH test group */
257 __FILE__, __DATE__, __TIME__,
258 "CMSIS-Driver ETH Test Report",
263 ARRAY_SIZE (TC_List_ETH),
267 #ifdef RTE_CMSIS_DV_I2C /* I2C test group */
269 __FILE__, __DATE__, __TIME__,
270 "CMSIS-Driver I2C (API v2.3) Test Report",
275 ARRAY_SIZE (TC_List_I2C),
279 #ifdef RTE_CMSIS_DV_MCI /* MCI test group */
281 __FILE__, __DATE__, __TIME__,
282 "CMSIS-Driver MCI Test Report",
287 ARRAY_SIZE (TC_List_MCI),
291 #ifdef RTE_CMSIS_DV_USBD /* USBD test group */
293 __FILE__, __DATE__, __TIME__,
294 "CMSIS-Driver USBD Test Report",
299 ARRAY_SIZE (TC_List_USBD),
303 #ifdef RTE_CMSIS_DV_USBH /* USBH test group */
305 __FILE__, __DATE__, __TIME__,
306 "CMSIS-Driver USBH Test Report",
311 ARRAY_SIZE (TC_List_USBH),
315 #ifdef RTE_CMSIS_DV_CAN /* CAN test group */
317 __FILE__, __DATE__, __TIME__,
318 "CMSIS-Driver CAN Test Report",
323 ARRAY_SIZE (TC_List_CAN),
327 #ifdef RTE_CMSIS_DV_WIFI /* WIFI test group */
329 __FILE__, __DATE__, __TIME__,
330 "CMSIS-Driver WiFi Test Report",
335 ARRAY_SIZE (TC_List_WiFi),
340 /* Number of test groups in suite */
341 uint32_t tg_cnt = sizeof(ts)/sizeof(ts[0]);
343 #if defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
344 #pragma clang diagnostic pop