Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
2 | mjames | 1 | #ifndef _JTEST_PF_H_ |
2 | #define _JTEST_PF_H_ |
||
3 | |||
4 | /*--------------------------------------------------------------------------------*/ |
||
5 | /* Purpose */ |
||
6 | /*--------------------------------------------------------------------------------*/ |
||
7 | /* jtest_pf.h Contains macros useful for capturing pass/fail data. */ |
||
8 | |||
9 | |||
10 | /*--------------------------------------------------------------------------------*/ |
||
11 | /* Macros and Defines */ |
||
12 | /*--------------------------------------------------------------------------------*/ |
||
13 | |||
14 | /** |
||
15 | * Members that can be added to other structs to extend them pass/fail data and |
||
16 | * corresponding functionality. |
||
17 | */ |
||
18 | #define JTEST_PF_MEMBERS \ |
||
19 | uint32_t passed; \ |
||
20 | uint32_t failed /* Note the lacking semicolon*/ \ |
||
21 | |||
22 | /** |
||
23 | * Used for initializing JTEST_PF_MEMBERS in a struct declaration. |
||
24 | */ |
||
25 | #define JTEST_PF_MEMBER_INIT \ |
||
26 | 0, \ |
||
27 | |||
28 | |||
29 | /* Member-Incrementing Macros */ |
||
30 | /*--------------------------------------------------------------------------------*/ |
||
31 | |||
32 | /** |
||
33 | * Dispatch macro for incrementing #JTEST_PF_MEMBERS. |
||
34 | * |
||
35 | * @param xxx Values: 'passed', 'failed' |
||
36 | */ |
||
37 | #define JTEST_PF_INC_XXX(xxx, struct_pf_ptr, amount) \ |
||
38 | do \ |
||
39 | { \ |
||
40 | ((struct_pf_ptr)->xxx) += (amount); \ |
||
41 | } while (0) |
||
42 | |||
43 | /** |
||
44 | * Specialization of the #JTEST_PF_INC_XXX macro to increment the passed |
||
45 | * member. |
||
46 | */ |
||
47 | #define JTEST_PF_INC_PASSED(struct_pf_ptr, amount) \ |
||
48 | JTEST_PF_INC_XXX(passed, struct_pf_ptr, amount) |
||
49 | |||
50 | |||
51 | /** |
||
52 | * Specialization of the #JTEST_PF_INC_XXX macro to increment the failed |
||
53 | * member. |
||
54 | */ |
||
55 | #define JTEST_PF_INC_FAILED(struct_pf_ptr, amount) \ |
||
56 | JTEST_PF_INC_XXX(failed, struct_pf_ptr, amount) |
||
57 | |||
58 | |||
59 | /* Member-Resetting Macros */ |
||
60 | /*--------------------------------------------------------------------------------*/ |
||
61 | |||
62 | /** |
||
63 | * Dispatch macro for setting #JTEST_PF_MEMBERS to zero. |
||
64 | * |
||
65 | * @param xxx Values: 'passed', 'failed' |
||
66 | */ |
||
67 | #define JTEST_PF_RESET_XXX(xxx, struct_pf_ptr) \ |
||
68 | do \ |
||
69 | { \ |
||
70 | ((struct_pf_ptr)->xxx) = UINT32_C(0); \ |
||
71 | } while (0) |
||
72 | |||
73 | /** |
||
74 | * Specialization of #JTEST_PF_RESET_XXX for the 'passed' member. |
||
75 | */ |
||
76 | #define JTEST_PF_RESET_PASSED(struct_pf_ptr) \ |
||
77 | JTEST_PF_RESET_XXX(passed, struct_pf_ptr) |
||
78 | |||
79 | /** |
||
80 | * Specialization of #JTEST_PF_RESET_XXX for the 'failed' member. |
||
81 | */ |
||
82 | #define JTEST_PF_RESET_FAILED(struct_pf_ptr) \ |
||
83 | JTEST_PF_RESET_XXX(failed, struct_pf_ptr) |
||
84 | |||
85 | #endif /* _JTEST_PF_H_ */ |