]> begriffs open source - cmsis-driver-validation/blob - Source/cmsis_dv.c
Improved robustness of SPI testing and SPI Server
[cmsis-driver-validation] / Source / cmsis_dv.c
1 /*
2  * Copyright (c) 2015-2020 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  *      Variables declarations
58  *----------------------------------------------------------------------------*/
59 // Buffer list sizes
60
61 #if (defined(RTE_CMSIS_DV_ETH) || defined(RTE_CMSIS_DV_USART))
62 const uint32_t BUFFER[] =  {
63 #if (BUFFER_ELEM_1_32!=0)
64   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,
65 #endif
66 #if (BUFFER_ELEM_512!=0)
67   512,
68 #endif
69 #if (BUFFER_ELEM_1024!=0)
70   1024,
71 #endif
72 #if (BUFFER_ELEM_4096!=0)
73   4096,
74 #endif
75 #if (BUFFER_ELEM_32768!=0)
76   32768,
77 #endif 
78 };
79 const uint32_t BUFFER_NUM = ARRAY_SIZE(BUFFER);
80 #endif
81
82 /*-----------------------------------------------------------------------------
83  *      Init/Uninit test suite
84  *----------------------------------------------------------------------------*/
85 #ifdef  RTE_CMSIS_DV_SPI
86 static void TS_Init_SPI (void) {
87   SPI_DV_Initialize ();
88 }
89 static void TS_Uninit_SPI (void) {
90   SPI_DV_Uninitialize ();
91 }
92 #endif
93 #ifdef  RTE_CMSIS_DV_WIFI
94 static void TS_Init_WiFi (void) {
95   WIFI_DV_Initialize ();
96 }
97 static void TS_Uninit_WiFi (void) {
98   WIFI_DV_Uninitialize ();
99 }
100 #endif
101
102 /*-----------------------------------------------------------------------------
103  *      Tests list
104  *----------------------------------------------------------------------------*/
105 #ifdef  RTE_CMSIS_DV_SPI
106 static TEST_CASE TC_List_SPI[] = {
107   #if ( SPI_TG_DRIVER_MANAGEMENT_EN != 0 )
108   TCD ( SPI_GetVersion,                 SPI_TC_GET_VERSION_EN           ),
109   TCD ( SPI_GetCapabilities,            SPI_TC_GET_CAPABILITIES_EN      ),
110   TCD ( SPI_Initialize_Uninitialize,    SPI_TC_INIT_UNINIT_EN           ),
111   TCD ( SPI_PowerControl,               SPI_TC_POWER_CONTROL_EN         ),
112   #endif
113   #if ( SPI_TG_DATA_EXCHANGE_EN != 0 )
114   #if ( SPI_TG_MODE_EN != 0 )
115   TCD ( SPI_Mode_Master_SS_Unused,      SPI_TC_MASTER_UNUSED_EN         ),
116   TCD ( SPI_Mode_Master_SS_Sw_Ctrl,     SPI_TC_MASTER_SW_EN             ),
117   TCD ( SPI_Mode_Master_SS_Hw_Ctrl_Out, SPI_TC_MASTER_HW_OUT_EN         ),
118   TCD ( SPI_Mode_Master_SS_Hw_Mon_In,   SPI_TC_MASTER_HW_IN_EN          ),
119   TCD ( SPI_Mode_Slave_SS_Hw_Mon,       SPI_TC_SLAVE_HW_EN              ),
120   TCD ( SPI_Mode_Slave_SS_Sw_Ctrl,      SPI_TC_SLAVE_SW_EN              ),
121   #endif
122   #if ( SPI_TG_FORMAT_EN != 0 )
123   TCD ( SPI_Format_Clock_Pol0_Pha0,     SPI_TC_FORMAT_POL0_PHA0_EN      ),
124   TCD ( SPI_Format_Clock_Pol0_Pha1,     SPI_TC_FORMAT_POL0_PHA1_EN      ),
125   TCD ( SPI_Format_Clock_Pol1_Pha0,     SPI_TC_FORMAT_POL1_PHA0_EN      ),
126   TCD ( SPI_Format_Clock_Pol1_Pha1,     SPI_TC_FORMAT_POL1_PHA1_EN      ),
127   TCD ( SPI_Format_Frame_TI,            SPI_TC_FORMAT_TI_EN             ),
128   TCD ( SPI_Format_Clock_Microwire,     SPI_TC_FORMAT_MICROWIRE_EN      ),
129   #endif
130   #if ( SPI_TG_DATA_BIT_EN != 0 )
131   TCD ( SPI_Data_Bits_1,               (SPI_TC_DATA_BIT_EN_MASK      )&1),
132   TCD ( SPI_Data_Bits_2,               (SPI_TC_DATA_BIT_EN_MASK >>  1)&1),
133   TCD ( SPI_Data_Bits_3,               (SPI_TC_DATA_BIT_EN_MASK >>  2)&1),
134   TCD ( SPI_Data_Bits_4,               (SPI_TC_DATA_BIT_EN_MASK >>  3)&1),
135   TCD ( SPI_Data_Bits_5,               (SPI_TC_DATA_BIT_EN_MASK >>  4)&1),
136   TCD ( SPI_Data_Bits_6,               (SPI_TC_DATA_BIT_EN_MASK >>  5)&1),
137   TCD ( SPI_Data_Bits_7,               (SPI_TC_DATA_BIT_EN_MASK >>  6)&1),
138   TCD ( SPI_Data_Bits_8,               (SPI_TC_DATA_BIT_EN_MASK >>  7)&1),
139   TCD ( SPI_Data_Bits_9,               (SPI_TC_DATA_BIT_EN_MASK >>  8)&1),
140   TCD ( SPI_Data_Bits_10,              (SPI_TC_DATA_BIT_EN_MASK >>  9)&1),
141   TCD ( SPI_Data_Bits_11,              (SPI_TC_DATA_BIT_EN_MASK >> 10)&1),
142   TCD ( SPI_Data_Bits_12,              (SPI_TC_DATA_BIT_EN_MASK >> 11)&1),
143   TCD ( SPI_Data_Bits_13,              (SPI_TC_DATA_BIT_EN_MASK >> 12)&1),
144   TCD ( SPI_Data_Bits_14,              (SPI_TC_DATA_BIT_EN_MASK >> 13)&1),
145   TCD ( SPI_Data_Bits_15,              (SPI_TC_DATA_BIT_EN_MASK >> 14)&1),
146   TCD ( SPI_Data_Bits_16,              (SPI_TC_DATA_BIT_EN_MASK >> 15)&1),
147   TCD ( SPI_Data_Bits_17,              (SPI_TC_DATA_BIT_EN_MASK >> 16)&1),
148   TCD ( SPI_Data_Bits_18,              (SPI_TC_DATA_BIT_EN_MASK >> 17)&1),
149   TCD ( SPI_Data_Bits_19,              (SPI_TC_DATA_BIT_EN_MASK >> 18)&1),
150   TCD ( SPI_Data_Bits_20,              (SPI_TC_DATA_BIT_EN_MASK >> 19)&1),
151   TCD ( SPI_Data_Bits_21,              (SPI_TC_DATA_BIT_EN_MASK >> 20)&1),
152   TCD ( SPI_Data_Bits_22,              (SPI_TC_DATA_BIT_EN_MASK >> 21)&1),
153   TCD ( SPI_Data_Bits_23,              (SPI_TC_DATA_BIT_EN_MASK >> 22)&1),
154   TCD ( SPI_Data_Bits_24,              (SPI_TC_DATA_BIT_EN_MASK >> 23)&1),
155   TCD ( SPI_Data_Bits_25,              (SPI_TC_DATA_BIT_EN_MASK >> 24)&1),
156   TCD ( SPI_Data_Bits_26,              (SPI_TC_DATA_BIT_EN_MASK >> 25)&1),
157   TCD ( SPI_Data_Bits_27,              (SPI_TC_DATA_BIT_EN_MASK >> 26)&1),
158   TCD ( SPI_Data_Bits_28,              (SPI_TC_DATA_BIT_EN_MASK >> 27)&1),
159   TCD ( SPI_Data_Bits_29,              (SPI_TC_DATA_BIT_EN_MASK >> 28)&1),
160   TCD ( SPI_Data_Bits_30,              (SPI_TC_DATA_BIT_EN_MASK >> 29)&1),
161   TCD ( SPI_Data_Bits_31,              (SPI_TC_DATA_BIT_EN_MASK >> 30)&1),
162   TCD ( SPI_Data_Bits_32,              (SPI_TC_DATA_BIT_EN_MASK >> 31)&1),
163   #endif
164   #if ( SPI_TG_BIT_ORDER_EN != 0 )
165   TCD ( SPI_Bit_Order_MSB_LSB,          SPI_TC_BIT_ORDER_MSB_LSB_EN     ),
166   TCD ( SPI_Bit_Order_LSB_MSB,          SPI_TC_BIT_ORDER_LSB_MSB_EN     ),
167   #endif
168   #if ( SPI_TG_BUS_SPEED_EN != 0 )
169   TCD ( SPI_Bus_Speed_Min,              SPI_TC_BUS_SPEED_MIN_EN         ),
170   TCD ( SPI_Bus_Speed_Max,              SPI_TC_BUS_SPEED_MAX_EN         ),
171   #endif
172   #if ( SPI_TG_OTHER_EN != 0 )
173   TCD ( SPI_Number_Of_Items,            SPI_TC_NUMBER_OF_ITEMS_EN       ),
174   TCD ( SPI_GetDataCount,               SPI_TC_GET_DATA_COUNT_EN        ),
175   TCD ( SPI_Abort,                      SPI_TC_ABORT_EN                 ),
176   #endif
177   #endif
178   #if ( SPI_TG_EVENT_EN != 0 )
179   TCD ( SPI_DataLost,                   SPI_TC_DATA_LOST_EN             ),
180   TCD ( SPI_ModeFault,                  SPI_TC_MODE_FAULT_EN            ),
181   #endif
182 };
183 #endif
184
185 #ifdef  RTE_CMSIS_DV_USART
186 static TEST_CASE TC_List_USART[] = {
187   TCD ( USART_GetCapabilities,          USART_GETCAPABILITIES_EN        ),
188   TCD ( USART_Initialization,           USART_INITIALIZATION_EN         ),
189   TCD ( USART_PowerControl,             USART_POWERCONTROL_EN           ),
190   TCD ( USART_Config_PolarityPhase,     USART_CONFIG_POLARITYPHASE_EN   ),
191   TCD ( USART_Config_DataBits,          USART_CONFIG_DATABITS_EN        ),
192   TCD ( USART_Config_StopBits,          USART_CONFIG_STOPBITS_EN        ),
193   TCD ( USART_Config_Parity,            USART_CONFIG_PARITY_EN          ),
194   TCD ( USART_Config_Baudrate,          USART_CONFIG_BAUDRATE_EN        ),
195   TCD ( USART_Config_CommonParams,      USART_CONFIG_COMMONPARAMS_EN    ),
196   TCD ( USART_Send,                     USART_SEND_EN                   ),
197   TCD ( USART_AsynchronousReceive,      USART_ASYNCHRONOUSRECEIVE_EN    ),
198   TCD ( USART_Loopback_CheckBaudrate,   USART_LOOPBACK_CHECKBAUDRATE_EN ),
199   TCD ( USART_Loopback_Transfer,        USART_LOOPBACK_TRANSFER_EN      ),
200   TCD ( USART_CheckInvalidInit,         USART_CHECKINVALIDINIT_EN       ),
201 };
202 #endif
203
204 #ifdef  RTE_CMSIS_DV_ETH
205 static TEST_CASE TC_List_ETH[] = {
206   TCD ( ETH_MAC_GetCapabilities,        ETH_MAC_GETCAPABILITIES_EN      ),
207   TCD ( ETH_MAC_Initialization,         ETH_MAC_INITIALIZATION_EN       ),
208   TCD ( ETH_MAC_PowerControl,           ETH_MAC_POWERCONTROL_EN         ),
209   TCD ( ETH_MAC_SetBusSpeed,            ETH_MAC_SETBUSSPEED_EN          ),
210   TCD ( ETH_MAC_Config_Mode,            ETH_MAC_CONFIG_MODE_EN          ),
211   TCD ( ETH_MAC_Config_CommonParams,    ETH_MAC_CONFIG_COMMONPARAMS_EN  ),
212   TCD ( ETH_MAC_PTP_ControlTimer,       ETH_MAC_PTP_CONTROLTIMER_EN     ),
213   TCD ( ETH_PHY_Initialization,         ETH_PHY_INITIALIZATION_EN       ),
214   TCD ( ETH_PHY_PowerControl,           ETH_PHY_POWERCONTROL_EN         ),
215   TCD ( ETH_PHY_Config,                 ETH_PHY_CONFIG_EN               ),
216   TCD ( ETH_Loopback_Transfer,          ETH_LOOPBACK_TRANSFER_EN        ),
217   TCD ( ETH_Loopback_PTP,               ETH_LOOPBACK_PTP_EN             ),
218   TCD ( ETH_PHY_CheckInvalidInit,       ETH_PHY_CHECKINVALIDINIT_EN     ),
219   TCD ( ETH_MAC_CheckInvalidInit,       ETH_MAC_CHECKINVALIDINIT_EN     ),
220 };
221 #endif
222
223 #ifdef  RTE_CMSIS_DV_I2C
224 static TEST_CASE TC_List_I2C[] = {
225   TCD ( I2C_GetCapabilities,            I2C_GETCAPABILITIES_EN          ),
226   TCD ( I2C_Initialization,             I2C_INITIALIZATION_EN           ),
227   TCD ( I2C_PowerControl,               I2C_POWERCONTROL_EN             ),
228   TCD ( I2C_SetBusSpeed,                I2C_SETBUSSPEED_EN              ),
229   TCD ( I2C_SetOwnAddress,              I2C_SETOWNADDRESS_EN            ),
230   TCD ( I2C_BusClear,                   I2C_BUSCLEAR_EN                 ),
231   TCD ( I2C_AbortTransfer,              I2C_ABORTTRANSFER_EN            ),
232   TCD ( I2C_CheckInvalidInit,           I2C_CHECKINVALIDINIT_EN         ),
233 };
234 #endif
235
236 #ifdef  RTE_CMSIS_DV_MCI
237 static TEST_CASE TC_List_MCI[] = {
238   TCD ( MCI_GetCapabilities,            MCI_GETCAPABILITIES_EN          ),
239   TCD ( MCI_Initialization,             MCI_INITIALIZATION_EN           ),
240   TCD ( MCI_PowerControl,               MCI_POWERCONTROL_EN             ),
241   TCD ( MCI_SetBusSpeedMode,            MCI_SETBUSSPEEDMODE_EN          ),
242   TCD ( MCI_Config_DataWidth,           MCI_CONFIG_DATAWIDTH_EN         ),
243   TCD ( MCI_Config_CmdLineMode,         MCI_CONFIG_CMDLINEMODE_EN       ),
244   TCD ( MCI_Config_DriverStrength,      MCI_CONFIG_DRIVERSTRENGTH_EN    ),
245   TCD ( MCI_CheckInvalidInit,           MCI_CHECKINVALIDINIT_EN         ),
246 };
247 #endif
248
249 #ifdef  RTE_CMSIS_DV_USBD
250 static TEST_CASE TC_List_USBD[] = {
251   TCD ( USBD_GetCapabilities,           USBD_GETCAPABILITIES_EN         ),
252   TCD ( USBD_Initialization,            USBD_INITIALIZATION_EN          ),
253   TCD ( USBD_PowerControl,              USBD_POWERCONTROL_EN            ),
254   TCD ( USBD_CheckInvalidInit,          USBD_CHECKINVALIDINIT_EN        ),
255 };
256 #endif
257
258 #ifdef  RTE_CMSIS_DV_USBH
259 static TEST_CASE TC_List_USBH[] = {
260   TCD ( USBH_GetCapabilities,           USBH_GETCAPABILITIES_EN         ),
261   TCD ( USBH_Initialization,            USBH_INITIALIZATION_EN          ),
262   TCD ( USBH_PowerControl,              USBH_POWERCONTROL_EN            ),
263   TCD ( USBH_CheckInvalidInit,          USBH_CHECKINVALIDINIT_EN        ),
264 };
265 #endif
266
267 #ifdef  RTE_CMSIS_DV_CAN
268 static TEST_CASE TC_List_CAN[] = {
269   TCD ( CAN_GetCapabilities,            CAN_GETCAPABILITIES_EN          ),
270   TCD ( CAN_Initialization,             CAN_INITIALIZATION_EN           ),
271   TCD ( CAN_PowerControl,               CAN_POWERCONTROL_EN             ),
272   TCD ( CAN_Loopback_CheckBitrate,      CAN_LOOPBACK_CHECK_BR_EN        ),
273   TCD ( CAN_Loopback_CheckBitrateFD,    CAN_LOOPBACK_CHECK_BR_FD_EN     ),
274   TCD ( CAN_Loopback_Transfer,          CAN_LOOPBACK_TRANSFER_EN        ),
275   TCD ( CAN_Loopback_TransferFD,        CAN_LOOPBACK_TRANSFER_FD_EN     ),
276 };
277 #endif
278
279 #ifdef  RTE_CMSIS_DV_WIFI
280 static TEST_CASE TC_List_WiFi[] = {
281   /*    WiFi Control tests */
282   #if ( WIFI_CONTROL_EN != 0)
283   TCD ( WIFI_GetVersion,                WIFI_GETVERSION_EN              ),
284   TCD ( WIFI_GetCapabilities,           WIFI_GETCAPABILITIES_EN         ),
285   TCD ( WIFI_Initialize_Uninitialize,   WIFI_INIT_UNINIT_EN             ),
286   TCD ( WIFI_PowerControl,              WIFI_POWERCONTROL_EN            ),
287   TCD ( WIFI_GetModuleInfo,             WIFI_GETMODULEINFO_EN           ),
288   #endif
289   /*    WiFi Management tests */
290   #if ( WIFI_MANAGEMENT_EN != 0)
291   TCD ( WIFI_SetOption_GetOption,       WIFI_SETGETOPTION_EN            ),
292   TCD ( WIFI_Scan,                      WIFI_SCAN_EN                    ),
293   TCD ( WIFI_Activate_Deactivate,       WIFI_ACT_DEACT_EN               ),
294   TCD ( WIFI_IsConnected,               WIFI_ISCONNECTED_EN             ),
295   TCD ( WIFI_GetNetInfo,                WIFI_GETNETINFO_EN              ),
296   #endif
297   /*    WiFi Management tests requiring user interaction */
298   #if ( WIFI_MANAGEMENT_USER_EN != 0)
299   TCD ( WIFI_Activate_AP,               WIFI_ACT_AP                     ),
300   #if ( WIFI_WPS_USER_EN != 0)
301   TCD ( WIFI_Activate_Station_WPS_PBC,  WIFI_ACT_STA_WPS_PBC            ),
302   TCD ( WIFI_Activate_Station_WPS_PIN,  WIFI_ACT_STA_WPS_PIN            ),
303   TCD ( WIFI_Activate_AP_WPS_PBC,       WIFI_ACT_AP_WPS_PBC             ),
304   TCD ( WIFI_Activate_AP_WPS_PIN,       WIFI_ACT_AP_WPS_PIN             ),
305   #endif
306   #endif
307   /*    WiFi Socket API tests */
308   #if ( WIFI_SOCKET_EN != 0)
309   TCD ( WIFI_SocketCreate,              WIFI_SOCKETCREATE_EN            ),
310   TCD ( WIFI_SocketBind,                WIFI_SOCKETBIND_EN              ),
311   TCD ( WIFI_SocketListen,              WIFI_SOCKETLISTEN_EN            ),
312   TCD ( WIFI_SocketAccept,              WIFI_SOCKETACCEPT_EN            ),
313   TCD ( WIFI_SocketConnect,             WIFI_SOCKETCONNECT_EN           ),
314   TCD ( WIFI_SocketRecv,                WIFI_SOCKETRECV_EN              ),
315   TCD ( WIFI_SocketRecvFrom,            WIFI_SOCKETRECVFROM_EN          ),
316   TCD ( WIFI_SocketSend,                WIFI_SOCKETSEND_EN              ),
317   TCD ( WIFI_SocketSendTo,              WIFI_SOCKETSENDTO_EN            ),
318   TCD ( WIFI_SocketGetSockName,         WIFI_SOCKETGETSOCKNAME_EN       ),
319   TCD ( WIFI_SocketGetPeerName,         WIFI_SOCKETGETPEERNAME_EN       ),
320   TCD ( WIFI_SocketGetOpt,              WIFI_SOCKETGETOPT_EN            ),
321   TCD ( WIFI_SocketSetOpt,              WIFI_SOCKETSETOPT_EN            ),
322   TCD ( WIFI_SocketClose,               WIFI_SOCKETCLOSE_EN             ),
323   TCD ( WIFI_SocketGetHostByName,       WIFI_SOCKETGETHOSTBYNAME_EN     ),
324   TCD ( WIFI_Ping,                      WIFI_PING_EN                    ),
325   #endif
326   /*    WiFi Socket Operation tests */
327   #if ( WIFI_SOCKET_OP_EN != 0)
328   TCD ( WIFI_Transfer_Fixed,            WIFI_TRANSFER_FIXED_EN          ),
329   TCD ( WIFI_Transfer_Incremental,      WIFI_TRANSFER_INCREMENTAL_EN    ),
330   TCD ( WIFI_Send_Fragmented,           WIFI_SEND_FRAGMENTED_EN         ),
331   TCD ( WIFI_Recv_Fragmented,           WIFI_RECV_FRAGMENTED_EN         ),
332   TCD ( WIFI_Test_Speed,                WIFI_TEST_SPEED_EN              ),
333   TCD ( WIFI_Concurrent_Socket,         WIFI_CONCURRENT_SOCKET_EN       ),
334   TCD ( WIFI_Downstream_Rate,           WIFI_DOWNSTREAM_RATE_EN         ),
335   TCD ( WIFI_Upstream_Rate,             WIFI_UPSTREAM_RATE_EN           ),
336   #endif
337 };
338 #endif
339
340 #if defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
341 #pragma clang diagnostic push
342 #pragma clang diagnostic ignored "-Wdate-time"
343 #endif
344 /*-----------------------------------------------------------------------------
345  *      Test suite description
346  *----------------------------------------------------------------------------*/
347 TEST_GROUP ts[] = {
348 #ifdef  RTE_CMSIS_DV_SPI                /* SPI test group                     */
349 {
350   __FILE__, __DATE__, __TIME__,
351   "CMSIS-Driver SPI Test Report",
352   TS_Init_SPI,
353   TS_Uninit_SPI,
354   TC_List_SPI,
355   ARRAY_SIZE (TC_List_SPI),
356 },
357 #endif
358
359 #ifdef  RTE_CMSIS_DV_USART              /* USART test group                   */
360 {
361   __FILE__, __DATE__, __TIME__,
362   "CMSIS-Driver USART Test Report",
363   NULL,
364   NULL,
365   TC_List_USART,
366   ARRAY_SIZE (TC_List_USART),
367 },
368 #endif
369
370 #ifdef  RTE_CMSIS_DV_ETH                /* ETH test group                     */
371 {
372   __FILE__, __DATE__, __TIME__,
373   "CMSIS-Driver ETH Test Report",
374   NULL,
375   NULL,
376   TC_List_ETH,
377   ARRAY_SIZE (TC_List_ETH),
378 },
379 #endif
380
381 #ifdef  RTE_CMSIS_DV_I2C                /* I2C test group                     */
382 {
383   __FILE__, __DATE__, __TIME__,
384   "CMSIS-Driver I2C (API v2.3) Test Report",
385   NULL,
386   NULL,
387   TC_List_I2C,
388   ARRAY_SIZE (TC_List_I2C),
389 },
390 #endif
391
392 #ifdef  RTE_CMSIS_DV_MCI                /* MCI test group                     */
393 {
394   __FILE__, __DATE__, __TIME__,
395   "CMSIS-Driver MCI Test Report",
396   NULL,
397   NULL,
398   TC_List_MCI,
399   ARRAY_SIZE (TC_List_MCI),
400 },
401 #endif
402
403 #ifdef  RTE_CMSIS_DV_USBD               /* USBD test group                    */
404 {
405   __FILE__, __DATE__, __TIME__,
406   "CMSIS-Driver USBD Test Report",
407   NULL,
408   NULL,
409   TC_List_USBD,
410   ARRAY_SIZE (TC_List_USBD),
411 },
412 #endif
413
414 #ifdef  RTE_CMSIS_DV_USBH               /* USBH test group                    */
415 {
416   __FILE__, __DATE__, __TIME__,
417   "CMSIS-Driver USBH Test Report",
418   NULL,
419   NULL,
420   TC_List_USBH,
421   ARRAY_SIZE (TC_List_USBH),
422 },
423 #endif
424
425 #ifdef  RTE_CMSIS_DV_CAN                /* CAN test group                    */
426 {
427   __FILE__, __DATE__, __TIME__,
428   "CMSIS-Driver CAN Test Report",
429   NULL,
430   NULL,
431   TC_List_CAN,
432   ARRAY_SIZE (TC_List_CAN),
433 },
434 #endif
435
436 #ifdef  RTE_CMSIS_DV_WIFI               /* WIFI test group                    */
437 {
438   __FILE__, __DATE__, __TIME__,
439   "CMSIS-Driver WiFi Test Report",
440   TS_Init_WiFi,
441   TS_Uninit_WiFi,
442   TC_List_WiFi,
443   ARRAY_SIZE (TC_List_WiFi),
444 },
445 #endif
446 };
447
448 /* Number of test groups in suite */
449 uint32_t tg_cnt = sizeof(ts)/sizeof(ts[0]);
450
451 #if defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
452 #pragma clang diagnostic pop
453 #endif