]> begriffs open source - cmsis/blob - CMSIS/CoreValidation/Include/CV_Report.h
CoreValidation: Updated tests to use reworked device startup code.
[cmsis] / CMSIS / CoreValidation / Include / CV_Report.h
1 /*-----------------------------------------------------------------------------
2  *      Name:         CV_Report.h 
3  *      Purpose:      Report statistics and layout header
4  *----------------------------------------------------------------------------
5  *      Copyright (c) 2017 ARM Limited. All rights reserved.
6  *----------------------------------------------------------------------------*/
7 #ifndef __REPORT_H__
8 #define __REPORT_H__
9
10 #include "CV_Config.h"
11 #include "CV_Typedefs.h"
12
13 /*-----------------------------------------------------------------------------
14  * Test report global definitions
15  *----------------------------------------------------------------------------*/
16  
17 #define REP_TC_FAIL 0
18 #define REP_TC_WARN 1
19 #define REP_TC_PASS 2
20 #define REP_TC_NOEX 3
21
22 /* Test case result definition */
23 typedef enum {
24   PASSED = 0,
25   WARNING,
26   FAILED,
27   NOT_EXECUTED
28 } TC_RES;
29
30 /* Assertion result info */
31 typedef struct {
32   const char    *module;                  /* Module name                        */
33   uint32_t       line;                    /* Assertion line                     */
34 } AS_INFO;
35
36 /* Test case callback interface definition */
37 typedef struct {
38   BOOL (* Result) (TC_RES res);
39   BOOL (* Dbgi)   (TC_RES res, const char *fn, uint32_t ln, char *desc);
40 } TC_ITF;
41
42 /* Assert interface to the report */
43 extern TC_ITF tcitf;
44
45 /* Assertion result buffer */
46 typedef struct {
47 AS_INFO passed[BUFFER_ASSERTIONS];  
48 AS_INFO failed[BUFFER_ASSERTIONS];  
49 AS_INFO warnings[BUFFER_ASSERTIONS];  
50 } AS_T_INFO;
51
52 /* Assertion statistics */
53 typedef struct {
54   uint32_t passed;           /* Total assertions passed                  */
55   uint32_t failed;           /* Total assertions failed                  */
56   uint32_t warnings;         /* Total assertions warnings                */
57   AS_T_INFO info;            /* Detailed assertion info                  */
58 } AS_STAT;
59
60 /* Test global statistics */
61 typedef struct {
62   uint32_t  tests;           /* Total test cases count                   */
63   uint32_t  executed;        /* Total test cases executed                */
64   uint32_t  passed;          /* Total test cases passed                  */
65   uint32_t  failed;          /* Total test cases failed                  */
66   uint32_t  warnings;        /* Total test cases warnings                */
67   AS_STAT   assertions;      /* Total assertions statistics              */
68 } TEST_REPORT;
69
70 /* Test report interface */
71 typedef struct {
72   BOOL (* Init)     (void);
73   BOOL (* Open)     (const char *title, const char *date, const char *time, const char *fn);
74   BOOL (* Close)    (void);  
75   BOOL (* Open_TC)  (uint32_t num, const char *fn);
76   BOOL (* Close_TC) (void);
77 } REPORT_ITF;
78
79 /* Test report statistics */
80 extern TEST_REPORT  test_report;
81
82 /* Test report interface */
83 extern REPORT_ITF   ritf;
84
85 /* Assertions and test results */
86 extern TC_RES __set_result (const char *fn, uint32_t ln, TC_RES res, char* desc);
87 extern TC_RES __assert_true (const char *fn, uint32_t ln, uint32_t cond);
88
89 #endif /* __REPORT_H__ */