]> begriffs open source - cmsis-driver-validation/blob - Source/cmsis_dv.c
Update ETH driver validation for RMII interface (#10)
[cmsis-driver-validation] / Source / cmsis_dv.c
1 /*
2  * Copyright (c) 2015-2023 Arm Limited. All rights reserved.
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Licensed under the Apache License, Version 2.0 (the License); you may
7  * not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an AS IS BASIS, WITHOUT
14  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  *
18  * -----------------------------------------------------------------------------
19  *
20  * Project:     CMSIS-Driver Validation
21  * Title:       Tests definitions
22  *
23  * -----------------------------------------------------------------------------
24  */
25
26 #include "cmsis_dv.h"
27 #ifdef  RTE_CMSIS_DV_SPI
28 #include "DV_SPI_Config.h"
29 #endif
30 #ifdef  RTE_CMSIS_DV_USART
31 #include "DV_USART_Config.h"
32 #endif
33 #ifdef  RTE_CMSIS_DV_ETH
34 #include "DV_ETH_Config.h"
35 #endif
36 #ifdef  RTE_CMSIS_DV_I2C
37 #include "DV_I2C_Config.h"
38 #endif
39 #ifdef  RTE_CMSIS_DV_MCI
40 #include "DV_MCI_Config.h"
41 #endif
42 #ifdef  RTE_CMSIS_DV_USBD
43 #include "DV_USBD_Config.h"
44 #endif
45 #ifdef  RTE_CMSIS_DV_USBH
46 #include "DV_USBH_Config.h"
47 #endif
48 #ifdef  RTE_CMSIS_DV_CAN
49 #include "DV_CAN_Config.h"
50 #endif
51 #ifdef  RTE_CMSIS_DV_WIFI
52 #include "DV_WiFi_Config.h"
53 #endif
54 #include "DV_Framework.h"
55
56 /*-----------------------------------------------------------------------------
57  *      Init/Uninit test suite
58  *----------------------------------------------------------------------------*/
59 #ifdef  RTE_CMSIS_DV_SPI
60 static void TS_Init_SPI (void) {
61   SPI_DV_Initialize ();
62 }
63 static void TS_Uninit_SPI (void) {
64   SPI_DV_Uninitialize ();
65 }
66 #endif
67 #ifdef  RTE_CMSIS_DV_USART
68 static void TS_Init_USART (void) {
69   USART_DV_Initialize ();
70 }
71 static void TS_Uninit_USART (void) {
72   USART_DV_Uninitialize ();
73 }
74 #endif
75 #ifdef  RTE_CMSIS_DV_ETH
76 static void TS_Init_ETH (void) {
77   ETH_DV_Initialize ();
78 }
79 static void TS_Uninit_ETH (void) {
80   ETH_DV_Uninitialize ();
81 }
82 #endif
83 #ifdef  RTE_CMSIS_DV_WIFI
84 static void TS_Init_WiFi (void) {
85   WIFI_DV_Initialize ();
86 }
87 static void TS_Uninit_WiFi (void) {
88   WIFI_DV_Uninitialize ();
89 }
90 #endif
91
92 /*-----------------------------------------------------------------------------
93  *      Tests list
94  *----------------------------------------------------------------------------*/
95 #ifdef  RTE_CMSIS_DV_SPI
96 static TEST_CASE TC_List_SPI[] = {
97   #if ( SPI_TG_DRIVER_MANAGEMENT_EN != 0 )
98   TCD ( SPI_GetVersion,                 SPI_TC_GET_VERSION_EN           ),
99   TCD ( SPI_GetCapabilities,            SPI_TC_GET_CAPABILITIES_EN      ),
100   TCD ( SPI_Initialize_Uninitialize,    SPI_TC_INIT_UNINIT_EN           ),
101   TCD ( SPI_PowerControl,               SPI_TC_POWER_CONTROL_EN         ),
102   #endif
103   #if ( SPI_TG_DATA_EXCHANGE_EN != 0 )
104   #if ( SPI_TG_MODE_EN != 0 )
105   TCD ( SPI_Mode_Master_SS_Unused,      SPI_TC_MASTER_UNUSED_EN         ),
106   TCD ( SPI_Mode_Master_SS_Sw_Ctrl,     SPI_TC_MASTER_SW_EN             ),
107   TCD ( SPI_Mode_Master_SS_Hw_Ctrl_Out, SPI_TC_MASTER_HW_OUT_EN         ),
108   TCD ( SPI_Mode_Master_SS_Hw_Mon_In,   SPI_TC_MASTER_HW_IN_EN          ),
109   TCD ( SPI_Mode_Slave_SS_Hw_Mon,       SPI_TC_SLAVE_HW_EN              ),
110   TCD ( SPI_Mode_Slave_SS_Sw_Ctrl,      SPI_TC_SLAVE_SW_EN              ),
111   #endif
112   #if ( SPI_TG_FORMAT_EN != 0 )
113   TCD ( SPI_Format_Clock_Pol0_Pha0,     SPI_TC_FORMAT_POL0_PHA0_EN      ),
114   TCD ( SPI_Format_Clock_Pol0_Pha1,     SPI_TC_FORMAT_POL0_PHA1_EN      ),
115   TCD ( SPI_Format_Clock_Pol1_Pha0,     SPI_TC_FORMAT_POL1_PHA0_EN      ),
116   TCD ( SPI_Format_Clock_Pol1_Pha1,     SPI_TC_FORMAT_POL1_PHA1_EN      ),
117   TCD ( SPI_Format_Frame_TI,            SPI_TC_FORMAT_TI_EN             ),
118   TCD ( SPI_Format_Clock_Microwire,     SPI_TC_FORMAT_MICROWIRE_EN      ),
119   #endif
120   #if ( SPI_TG_DATA_BIT_EN != 0 )
121   TCD ( SPI_Data_Bits_1,               (SPI_TC_DATA_BIT_EN_MASK      )&1),
122   TCD ( SPI_Data_Bits_2,               (SPI_TC_DATA_BIT_EN_MASK >>  1)&1),
123   TCD ( SPI_Data_Bits_3,               (SPI_TC_DATA_BIT_EN_MASK >>  2)&1),
124   TCD ( SPI_Data_Bits_4,               (SPI_TC_DATA_BIT_EN_MASK >>  3)&1),
125   TCD ( SPI_Data_Bits_5,               (SPI_TC_DATA_BIT_EN_MASK >>  4)&1),
126   TCD ( SPI_Data_Bits_6,               (SPI_TC_DATA_BIT_EN_MASK >>  5)&1),
127   TCD ( SPI_Data_Bits_7,               (SPI_TC_DATA_BIT_EN_MASK >>  6)&1),
128   TCD ( SPI_Data_Bits_8,               (SPI_TC_DATA_BIT_EN_MASK >>  7)&1),
129   TCD ( SPI_Data_Bits_9,               (SPI_TC_DATA_BIT_EN_MASK >>  8)&1),
130   TCD ( SPI_Data_Bits_10,              (SPI_TC_DATA_BIT_EN_MASK >>  9)&1),
131   TCD ( SPI_Data_Bits_11,              (SPI_TC_DATA_BIT_EN_MASK >> 10)&1),
132   TCD ( SPI_Data_Bits_12,              (SPI_TC_DATA_BIT_EN_MASK >> 11)&1),
133   TCD ( SPI_Data_Bits_13,              (SPI_TC_DATA_BIT_EN_MASK >> 12)&1),
134   TCD ( SPI_Data_Bits_14,              (SPI_TC_DATA_BIT_EN_MASK >> 13)&1),
135   TCD ( SPI_Data_Bits_15,              (SPI_TC_DATA_BIT_EN_MASK >> 14)&1),
136   TCD ( SPI_Data_Bits_16,              (SPI_TC_DATA_BIT_EN_MASK >> 15)&1),
137   TCD ( SPI_Data_Bits_17,              (SPI_TC_DATA_BIT_EN_MASK >> 16)&1),
138   TCD ( SPI_Data_Bits_18,              (SPI_TC_DATA_BIT_EN_MASK >> 17)&1),
139   TCD ( SPI_Data_Bits_19,              (SPI_TC_DATA_BIT_EN_MASK >> 18)&1),
140   TCD ( SPI_Data_Bits_20,              (SPI_TC_DATA_BIT_EN_MASK >> 19)&1),
141   TCD ( SPI_Data_Bits_21,              (SPI_TC_DATA_BIT_EN_MASK >> 20)&1),
142   TCD ( SPI_Data_Bits_22,              (SPI_TC_DATA_BIT_EN_MASK >> 21)&1),
143   TCD ( SPI_Data_Bits_23,              (SPI_TC_DATA_BIT_EN_MASK >> 22)&1),
144   TCD ( SPI_Data_Bits_24,              (SPI_TC_DATA_BIT_EN_MASK >> 23)&1),
145   TCD ( SPI_Data_Bits_25,              (SPI_TC_DATA_BIT_EN_MASK >> 24)&1),
146   TCD ( SPI_Data_Bits_26,              (SPI_TC_DATA_BIT_EN_MASK >> 25)&1),
147   TCD ( SPI_Data_Bits_27,              (SPI_TC_DATA_BIT_EN_MASK >> 26)&1),
148   TCD ( SPI_Data_Bits_28,              (SPI_TC_DATA_BIT_EN_MASK >> 27)&1),
149   TCD ( SPI_Data_Bits_29,              (SPI_TC_DATA_BIT_EN_MASK >> 28)&1),
150   TCD ( SPI_Data_Bits_30,              (SPI_TC_DATA_BIT_EN_MASK >> 29)&1),
151   TCD ( SPI_Data_Bits_31,              (SPI_TC_DATA_BIT_EN_MASK >> 30)&1),
152   TCD ( SPI_Data_Bits_32,              (SPI_TC_DATA_BIT_EN_MASK >> 31)&1),
153   #endif
154   #if ( SPI_TG_BIT_ORDER_EN != 0 )
155   TCD ( SPI_Bit_Order_MSB_LSB,          SPI_TC_BIT_ORDER_MSB_LSB_EN     ),
156   TCD ( SPI_Bit_Order_LSB_MSB,          SPI_TC_BIT_ORDER_LSB_MSB_EN     ),
157   #endif
158   #if ( SPI_TG_BUS_SPEED_EN != 0 )
159   TCD ( SPI_Bus_Speed_Min,              SPI_TC_BUS_SPEED_MIN_EN         ),
160   TCD ( SPI_Bus_Speed_Max,              SPI_TC_BUS_SPEED_MAX_EN         ),
161   #endif
162   #if ( SPI_TG_OTHER_EN != 0 )
163   TCD ( SPI_Number_Of_Items,            SPI_TC_NUMBER_OF_ITEMS_EN       ),
164   TCD ( SPI_GetDataCount,               SPI_TC_GET_DATA_COUNT_EN        ),
165   TCD ( SPI_Abort,                      SPI_TC_ABORT_EN                 ),
166   #endif
167   #endif
168   #if ( SPI_TG_EVENT_EN != 0 )
169   TCD ( SPI_DataLost,                   SPI_TC_DATA_LOST_EN             ),
170   TCD ( SPI_ModeFault,                  SPI_TC_MODE_FAULT_EN            ),
171   #endif
172 };
173 #endif
174
175 #ifdef  RTE_CMSIS_DV_USART
176 static TEST_CASE TC_List_USART[] = {
177   #if ( USART_TG_DRIVER_MANAGEMENT_EN != 0 )
178   TCD ( USART_GetVersion,               USART_TC_GET_VERSION_EN         ),
179   TCD ( USART_GetCapabilities,          USART_TC_GET_CAPABILITIES_EN    ),
180   TCD ( USART_Initialize_Uninitialize,  USART_TC_INIT_UNINIT_EN         ),
181   TCD ( USART_PowerControl,             USART_TC_POWER_CONTROL_EN       ),
182   #endif
183   #if ( USART_TG_DATA_EXCHANGE_EN != 0 )
184   #if ( USART_TG_MODE_EN != 0 )
185   TCD ( USART_Mode_Asynchronous,        USART_TC_ASYNC_EN               ),
186   TCD ( USART_Mode_Synchronous_Master,  USART_TC_SYNC_MASTER_EN         ),
187   TCD ( USART_Mode_Synchronous_Slave,   USART_TC_SYNC_SLAVE_EN          ),
188   TCD ( USART_Mode_Single_Wire,         USART_TC_SINGLE_WIRE_EN         ),
189   TCD ( USART_Mode_IrDA,                USART_TC_IRDA_EN                ),
190   #endif
191   #if ( USART_TG_DATA_BITS_EN != 0 )
192   TCD ( USART_Data_Bits_5,              USART_TC_DATA_BITS_5_EN         ),
193   TCD ( USART_Data_Bits_6,              USART_TC_DATA_BITS_6_EN         ),
194   TCD ( USART_Data_Bits_7,              USART_TC_DATA_BITS_7_EN         ),
195   TCD ( USART_Data_Bits_8,              USART_TC_DATA_BITS_8_EN         ),
196   TCD ( USART_Data_Bits_9,              USART_TC_DATA_BITS_9_EN         ),
197   #endif
198   #if ( USART_TG_PARITY_EN != 0 )
199   TCD ( USART_Parity_None,              USART_TC_PARITY_NONE_EN         ),
200   TCD ( USART_Parity_Even,              USART_TC_PARITY_EVEN_EN         ),
201   TCD ( USART_Parity_Odd,               USART_TC_PARITY_ODD_EN          ),
202   #endif
203   #if ( USART_TG_STOP_BITS_EN != 0 )
204   TCD ( USART_Stop_Bits_1,              USART_TC_STOP_BITS_1_EN         ),
205   TCD ( USART_Stop_Bits_2,              USART_TC_STOP_BITS_2_EN         ),
206   TCD ( USART_Stop_Bits_1_5,            USART_TC_STOP_BITS_1_5_EN       ),
207   TCD ( USART_Stop_Bits_0_5,            USART_TC_STOP_BITS_0_5_EN       ),
208   #endif
209   #if ( USART_TG_FLOW_CTRL_EN != 0)
210   TCD ( USART_Flow_Control_None,        USART_TC_FLOW_CTRL_NONE_EN      ),
211   TCD ( USART_Flow_Control_RTS,         USART_TC_FLOW_CTRL_RTS_EN       ),
212   TCD ( USART_Flow_Control_CTS,         USART_TC_FLOW_CTRL_CTS_EN       ),
213   TCD ( USART_Flow_Control_RTS_CTS,     USART_TC_FLOW_CTRL_RTS_CTS_EN   ),
214   #endif
215   #if ( USART_TG_CLOCK_EN != 0)
216   TCD ( USART_Clock_Pol0_Pha0,          USART_TC_CLOCK_POL0_PHA0_EN     ),
217   TCD ( USART_Clock_Pol0_Pha1,          USART_TC_CLOCK_POL0_PHA1_EN     ),
218   TCD ( USART_Clock_Pol1_Pha0,          USART_TC_CLOCK_POL1_PHA1_EN     ),
219   TCD ( USART_Clock_Pol1_Pha1,          USART_TC_CLOCK_POL1_PHA1_EN     ),
220   #endif
221   #if ( USART_TG_BAUDRATE_EN != 0)
222   TCD ( USART_Baudrate_Min,             USART_TC_BAUDRATE_MIN_EN        ),
223   TCD ( USART_Baudrate_Max,             USART_TC_BAUDRATE_MAX_EN        ),
224   #endif
225   #if ( USART_TG_OTHER_EN != 0)
226   TCD ( USART_Number_Of_Items,          USART_TC_NUMBER_OF_ITEMS_EN     ),
227   TCD ( USART_GetTxCount,               USART_TC_GET_TX_COUNT_EN        ),
228   TCD ( USART_GetRxCount,               USART_TC_GET_RX_COUNT_EN        ),
229   TCD ( USART_GetTxRxCount,             USART_TC_GET_TX_RX_COUNT_EN     ),
230   TCD ( USART_AbortSend,                USART_TC_ABORT_SEND_EN          ),
231   TCD ( USART_AbortReceive,             USART_TC_ABORT_RECEIVE_EN       ),
232   TCD ( USART_AbortTransfer,            USART_TC_ABORT_TRANSFER_EN      ),
233   TCD ( USART_TxBreak,                  USART_TC_TX_BREAK_EN            ),
234   #endif
235   #endif
236   #if ( USART_TG_MODEM_EN != 0 )
237   TCD ( USART_Modem_RTS,                USART_TC_MODEM_RTS_EN           ),
238   TCD ( USART_Modem_DTR,                USART_TC_MODEM_DTR_EN           ),
239   TCD ( USART_Modem_CTS,                USART_TC_MODEM_CTS_EN           ),
240   TCD ( USART_Modem_DSR,                USART_TC_MODEM_DSR_EN           ),
241   TCD ( USART_Modem_DCD,                USART_TC_MODEM_DCD_EN           ),
242   TCD ( USART_Modem_RI,                 USART_TC_MODEM_RI_EN            ),
243   #endif
244   #if ( USART_TG_EVENT_EN != 0 )
245   TCD ( USART_Tx_Underflow,             USART_TC_TX_UNDERFLOW_EN        ),
246   TCD ( USART_Rx_Overflow,              USART_TC_RX_OVERFLOW_EN         ),
247   TCD ( USART_Rx_Timeout,               USART_TC_RX_TIMEOUT_EN          ),
248   TCD ( USART_Rx_Break,                 USART_TC_RX_BREAK_EN            ),
249   TCD ( USART_Rx_Framing_Error,         USART_TC_RX_FRAMING_ERROR_EN    ),
250   TCD ( USART_Rx_Parity_Error,          USART_TC_RX_PARITY_ERROR_EN     ),
251   TCD ( USART_Event_CTS,                USART_TC_EVENT_CTS_EN           ),
252   TCD ( USART_Event_DSR,                USART_TC_EVENT_DSR_EN           ),
253   TCD ( USART_Event_DCD,                USART_TC_EVENT_DCD_EN           ),
254   TCD ( USART_Event_RI,                 USART_TC_EVENT_RI_EN            ),
255   #endif
256 };
257 #endif
258
259 #ifdef  RTE_CMSIS_DV_ETH
260 static TEST_CASE TC_List_ETH[] = {
261   TCD ( ETH_MAC_GetVersion,             ETH_MAC_GET_VERSION_EN          ),
262   TCD ( ETH_MAC_GetCapabilities,        ETH_MAC_GET_CAPABILITIES_EN     ),
263   TCD ( ETH_MAC_Initialization,         ETH_MAC_INITIALIZATION_EN       ),
264   TCD ( ETH_MAC_PowerControl,           ETH_MAC_POWER_CONTROL_EN        ),
265   TCD ( ETH_MAC_MacAddress,             ETH_MAC_MAC_ADDRESS_EN          ),
266   TCD ( ETH_MAC_SetBusSpeed,            ETH_MAC_SET_BUS_SPEED_EN        ),
267   TCD ( ETH_MAC_Config_Mode,            ETH_MAC_CONFIG_MODE_EN          ),
268   TCD ( ETH_MAC_Config_CommonParams,    ETH_MAC_CONFIG_COMMON_PARAMS_EN ),
269   TCD ( ETH_MAC_Control_Filtering,      ETH_MAC_CONTROL_FILTERING_EN    ),
270   TCD ( ETH_MAC_SetAddressFilter,       ETH_MAC_SET_ADDRESS_FILTER_EN   ),
271   TCD ( ETH_MAC_SignalEvent,            ETH_MAC_SIGNAL_EVENT_EN         ),
272   TCD ( ETH_MAC_PTP_ControlTimer,       ETH_MAC_PTP_CONTROL_TIMER_EN    ),
273   TCD ( ETH_MAC_CheckInvalidInit,       ETH_MAC_CHECK_INVALID_INIT_EN   ),
274   TCD ( ETH_PHY_GetVersion,             ETH_PHY_GET_VERSION_EN          ),
275   TCD ( ETH_PHY_Initialization,         ETH_PHY_INITIALIZATION_EN       ),
276   TCD ( ETH_PHY_PowerControl,           ETH_PHY_POWER_CONTROL_EN        ),
277   TCD ( ETH_PHY_Config,                 ETH_PHY_CONFIG_EN               ),
278   TCD ( ETH_PHY_CheckInvalidInit,       ETH_PHY_CHECK_INVALID_INIT_EN   ),
279   TCD ( ETH_Loopback_Transfer,          ETH_LOOPBACK_TRANSFER_EN        ),
280   TCD ( ETH_Loopback_PTP,               ETH_LOOPBACK_PTP_EN             ),
281   TCD ( ETH_Loopback_External,          ETH_LOOPBACK_EXTERNAL_EN        ),
282 };
283 #endif
284
285 #ifdef  RTE_CMSIS_DV_I2C
286 static TEST_CASE TC_List_I2C[] = {
287   TCD ( I2C_GetCapabilities,            I2C_GETCAPABILITIES_EN          ),
288   TCD ( I2C_Initialization,             I2C_INITIALIZATION_EN           ),
289   TCD ( I2C_PowerControl,               I2C_POWERCONTROL_EN             ),
290   TCD ( I2C_SetBusSpeed,                I2C_SETBUSSPEED_EN              ),
291   TCD ( I2C_SetOwnAddress,              I2C_SETOWNADDRESS_EN            ),
292   TCD ( I2C_BusClear,                   I2C_BUSCLEAR_EN                 ),
293   TCD ( I2C_AbortTransfer,              I2C_ABORTTRANSFER_EN            ),
294   TCD ( I2C_CheckInvalidInit,           I2C_CHECKINVALIDINIT_EN         ),
295 };
296 #endif
297
298 #ifdef  RTE_CMSIS_DV_MCI
299 static TEST_CASE TC_List_MCI[] = {
300   TCD ( MCI_GetCapabilities,            MCI_GETCAPABILITIES_EN          ),
301   TCD ( MCI_Initialization,             MCI_INITIALIZATION_EN           ),
302   TCD ( MCI_PowerControl,               MCI_POWERCONTROL_EN             ),
303   TCD ( MCI_SetBusSpeedMode,            MCI_SETBUSSPEEDMODE_EN          ),
304   TCD ( MCI_Config_DataWidth,           MCI_CONFIG_DATAWIDTH_EN         ),
305   TCD ( MCI_Config_CmdLineMode,         MCI_CONFIG_CMDLINEMODE_EN       ),
306   TCD ( MCI_Config_DriverStrength,      MCI_CONFIG_DRIVERSTRENGTH_EN    ),
307   TCD ( MCI_CheckInvalidInit,           MCI_CHECKINVALIDINIT_EN         ),
308 };
309 #endif
310
311 #ifdef  RTE_CMSIS_DV_USBD
312 static TEST_CASE TC_List_USBD[] = {
313   TCD ( USBD_GetCapabilities,           USBD_GETCAPABILITIES_EN         ),
314   TCD ( USBD_Initialization,            USBD_INITIALIZATION_EN          ),
315   TCD ( USBD_PowerControl,              USBD_POWERCONTROL_EN            ),
316   TCD ( USBD_CheckInvalidInit,          USBD_CHECKINVALIDINIT_EN        ),
317 };
318 #endif
319
320 #ifdef  RTE_CMSIS_DV_USBH
321 static TEST_CASE TC_List_USBH[] = {
322   TCD ( USBH_GetCapabilities,           USBH_GETCAPABILITIES_EN         ),
323   TCD ( USBH_Initialization,            USBH_INITIALIZATION_EN          ),
324   TCD ( USBH_PowerControl,              USBH_POWERCONTROL_EN            ),
325   TCD ( USBH_CheckInvalidInit,          USBH_CHECKINVALIDINIT_EN        ),
326 };
327 #endif
328
329 #ifdef  RTE_CMSIS_DV_CAN
330 static TEST_CASE TC_List_CAN[] = {
331   TCD ( CAN_GetCapabilities,            CAN_GETCAPABILITIES_EN          ),
332   TCD ( CAN_Initialization,             CAN_INITIALIZATION_EN           ),
333   TCD ( CAN_PowerControl,               CAN_POWERCONTROL_EN             ),
334   TCD ( CAN_Loopback_CheckBitrate,      CAN_LOOPBACK_CHECK_BR_EN        ),
335   TCD ( CAN_Loopback_CheckBitrateFD,    CAN_LOOPBACK_CHECK_BR_FD_EN     ),
336   TCD ( CAN_Loopback_Transfer,          CAN_LOOPBACK_TRANSFER_EN        ),
337   TCD ( CAN_Loopback_TransferFD,        CAN_LOOPBACK_TRANSFER_FD_EN     ),
338 };
339 #endif
340
341 #ifdef  RTE_CMSIS_DV_WIFI
342 static TEST_CASE TC_List_WiFi[] = {
343   /*    WiFi Control tests */
344   #if ( WIFI_CONTROL_EN != 0)
345   TCD ( WIFI_GetVersion,                WIFI_GETVERSION_EN              ),
346   TCD ( WIFI_GetCapabilities,           WIFI_GETCAPABILITIES_EN         ),
347   TCD ( WIFI_Initialize_Uninitialize,   WIFI_INIT_UNINIT_EN             ),
348   TCD ( WIFI_PowerControl,              WIFI_POWERCONTROL_EN            ),
349   TCD ( WIFI_GetModuleInfo,             WIFI_GETMODULEINFO_EN           ),
350   #endif
351   /*    WiFi Management tests */
352   #if ( WIFI_MANAGEMENT_EN != 0)
353   TCD ( WIFI_SetOption_GetOption,       WIFI_SETGETOPTION_EN            ),
354   TCD ( WIFI_Scan,                      WIFI_SCAN_EN                    ),
355   TCD ( WIFI_Activate_Deactivate,       WIFI_ACT_DEACT_EN               ),
356   TCD ( WIFI_IsConnected,               WIFI_ISCONNECTED_EN             ),
357   TCD ( WIFI_GetNetInfo,                WIFI_GETNETINFO_EN              ),
358   #endif
359   /*    WiFi Management tests requiring user interaction */
360   #if ( WIFI_MANAGEMENT_USER_EN != 0)
361   TCD ( WIFI_Activate_AP,               WIFI_ACT_AP                     ),
362   #if ( WIFI_WPS_USER_EN != 0)
363   TCD ( WIFI_Activate_Station_WPS_PBC,  WIFI_ACT_STA_WPS_PBC            ),
364   TCD ( WIFI_Activate_Station_WPS_PIN,  WIFI_ACT_STA_WPS_PIN            ),
365   TCD ( WIFI_Activate_AP_WPS_PBC,       WIFI_ACT_AP_WPS_PBC             ),
366   TCD ( WIFI_Activate_AP_WPS_PIN,       WIFI_ACT_AP_WPS_PIN             ),
367   #endif
368   #endif
369   /*    WiFi Socket API tests */
370   #if ( WIFI_SOCKET_EN != 0)
371   TCD ( WIFI_SocketCreate,              WIFI_SOCKETCREATE_EN            ),
372   TCD ( WIFI_SocketBind,                WIFI_SOCKETBIND_EN              ),
373   TCD ( WIFI_SocketListen,              WIFI_SOCKETLISTEN_EN            ),
374   TCD ( WIFI_SocketAccept,              WIFI_SOCKETACCEPT_EN            ),
375   TCD ( WIFI_SocketAccept_nbio,         WIFI_SOCKETACCEPT_NBIO_EN       ),
376   TCD ( WIFI_SocketConnect,             WIFI_SOCKETCONNECT_EN           ),
377   TCD ( WIFI_SocketConnect_nbio,        WIFI_SOCKETCONNECT_NBIO_EN      ),
378   TCD ( WIFI_SocketRecv,                WIFI_SOCKETRECV_EN              ),
379   TCD ( WIFI_SocketRecv_nbio,           WIFI_SOCKETRECV_NBIO_EN         ),
380   TCD ( WIFI_SocketRecvFrom,            WIFI_SOCKETRECVFROM_EN          ),
381   TCD ( WIFI_SocketRecvFrom_nbio,       WIFI_SOCKETRECVFROM_NBIO_EN     ),
382   TCD ( WIFI_SocketSend,                WIFI_SOCKETSEND_EN              ),
383   TCD ( WIFI_SocketSendTo,              WIFI_SOCKETSENDTO_EN            ),
384   TCD ( WIFI_SocketGetSockName,         WIFI_SOCKETGETSOCKNAME_EN       ),
385   TCD ( WIFI_SocketGetPeerName,         WIFI_SOCKETGETPEERNAME_EN       ),
386   TCD ( WIFI_SocketGetOpt,              WIFI_SOCKETGETOPT_EN            ),
387   TCD ( WIFI_SocketSetOpt,              WIFI_SOCKETSETOPT_EN            ),
388   TCD ( WIFI_SocketClose,               WIFI_SOCKETCLOSE_EN             ),
389   TCD ( WIFI_SocketGetHostByName,       WIFI_SOCKETGETHOSTBYNAME_EN     ),
390   TCD ( WIFI_Ping,                      WIFI_PING_EN                    ),
391   #endif
392   /*    WiFi Socket Operation tests */
393   #if ( WIFI_SOCKET_OP_EN != 0)
394   TCD ( WIFI_Transfer_Fixed,            WIFI_TRANSFER_FIXED_EN          ),
395   TCD ( WIFI_Transfer_Incremental,      WIFI_TRANSFER_INCREMENTAL_EN    ),
396   TCD ( WIFI_Send_Fragmented,           WIFI_SEND_FRAGMENTED_EN         ),
397   TCD ( WIFI_Recv_Fragmented,           WIFI_RECV_FRAGMENTED_EN         ),
398   TCD ( WIFI_Test_Speed,                WIFI_TEST_SPEED_EN              ),
399   TCD ( WIFI_Concurrent_Socket,         WIFI_CONCURRENT_SOCKET_EN       ),
400   TCD ( WIFI_Downstream_Rate,           WIFI_DOWNSTREAM_RATE_EN         ),
401   TCD ( WIFI_Upstream_Rate,             WIFI_UPSTREAM_RATE_EN           ),
402   #endif
403 };
404 #endif
405
406 #if defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
407 #pragma clang diagnostic push
408 #pragma clang diagnostic ignored "-Wdate-time"
409 #endif
410 /*-----------------------------------------------------------------------------
411  *      Test suite description
412  *----------------------------------------------------------------------------*/
413 TEST_GROUP ts[] = {
414 #ifdef  RTE_CMSIS_DV_SPI                /* SPI test group                     */
415 {
416   __FILE__, __DATE__, __TIME__,
417   "CMSIS-Driver_Validation v" RTE_CMSIS_DV_PACK_VER " CMSIS-Driver SPI Test Report",
418   TS_Init_SPI,
419   TS_Uninit_SPI,
420   TC_List_SPI,
421   ARRAY_SIZE (TC_List_SPI),
422 },
423 #endif
424
425 #ifdef  RTE_CMSIS_DV_USART              /* USART test group                   */
426 {
427   __FILE__, __DATE__, __TIME__,
428   "CMSIS-Driver_Validation v" RTE_CMSIS_DV_PACK_VER " CMSIS-Driver USART Test Report",
429   TS_Init_USART,
430   TS_Uninit_USART,
431   TC_List_USART,
432   ARRAY_SIZE (TC_List_USART),
433 },
434 #endif
435
436 #ifdef  RTE_CMSIS_DV_ETH                /* ETH test group                     */
437 {
438   __FILE__, __DATE__, __TIME__,
439   "CMSIS-Driver_Validation v" RTE_CMSIS_DV_PACK_VER " CMSIS-Driver ETH Test Report",
440   TS_Init_ETH,
441   TS_Uninit_ETH,
442   TC_List_ETH,
443   ARRAY_SIZE (TC_List_ETH),
444 },
445 #endif
446
447 #ifdef  RTE_CMSIS_DV_I2C                /* I2C test group                     */
448 {
449   __FILE__, __DATE__, __TIME__,
450   "CMSIS-Driver_Validation v" RTE_CMSIS_DV_PACK_VER " CMSIS-Driver I2C (API v2.3) Test Report",
451   NULL,
452   NULL,
453   TC_List_I2C,
454   ARRAY_SIZE (TC_List_I2C),
455 },
456 #endif
457
458 #ifdef  RTE_CMSIS_DV_MCI                /* MCI test group                     */
459 {
460   __FILE__, __DATE__, __TIME__,
461   "CMSIS-Driver_Validation v" RTE_CMSIS_DV_PACK_VER " CMSIS-Driver MCI Test Report",
462   NULL,
463   NULL,
464   TC_List_MCI,
465   ARRAY_SIZE (TC_List_MCI),
466 },
467 #endif
468
469 #ifdef  RTE_CMSIS_DV_USBD               /* USBD test group                    */
470 {
471   __FILE__, __DATE__, __TIME__,
472   "CMSIS-Driver_Validation v" RTE_CMSIS_DV_PACK_VER " CMSIS-Driver USBD Test Report",
473   NULL,
474   NULL,
475   TC_List_USBD,
476   ARRAY_SIZE (TC_List_USBD),
477 },
478 #endif
479
480 #ifdef  RTE_CMSIS_DV_USBH               /* USBH test group                    */
481 {
482   __FILE__, __DATE__, __TIME__,
483   "CMSIS-Driver_Validation v" RTE_CMSIS_DV_PACK_VER " CMSIS-Driver USBH Test Report",
484   NULL,
485   NULL,
486   TC_List_USBH,
487   ARRAY_SIZE (TC_List_USBH),
488 },
489 #endif
490
491 #ifdef  RTE_CMSIS_DV_CAN                /* CAN test group                    */
492 {
493   __FILE__, __DATE__, __TIME__,
494   "CMSIS-Driver_Validation v" RTE_CMSIS_DV_PACK_VER " CMSIS-Driver CAN Test Report",
495   NULL,
496   NULL,
497   TC_List_CAN,
498   ARRAY_SIZE (TC_List_CAN),
499 },
500 #endif
501
502 #ifdef  RTE_CMSIS_DV_WIFI               /* WIFI test group                    */
503 {
504   __FILE__, __DATE__, __TIME__,
505   "CMSIS-Driver_Validation v" RTE_CMSIS_DV_PACK_VER " CMSIS-Driver WiFi Test Report",
506   TS_Init_WiFi,
507   TS_Uninit_WiFi,
508   TC_List_WiFi,
509   ARRAY_SIZE (TC_List_WiFi),
510 },
511 #endif
512 };
513
514 /* Number of test groups in suite */
515 uint32_t tg_cnt = sizeof(ts)/sizeof(ts[0]);
516
517 #if defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
518 #pragma clang diagnostic pop
519 #endif