| #ifndef _JTEST_PF_H_ |
| #define _JTEST_PF_H_ |
| |
| /*--------------------------------------------------------------------------------*/ |
| /* Purpose */ |
| /*--------------------------------------------------------------------------------*/ |
| /* jtest_pf.h Contains macros useful for capturing pass/fail data. */ |
| |
| |
| /*--------------------------------------------------------------------------------*/ |
| /* Macros and Defines */ |
| /*--------------------------------------------------------------------------------*/ |
| |
| /** |
| * Members that can be added to other structs to extend them pass/fail data and |
| * corresponding functionality. |
| */ |
| #define JTEST_PF_MEMBERS \ |
| uint32_t passed; \ |
| uint32_t failed /* Note the lacking semicolon*/ \ |
| |
| /** |
| * Used for initializing JTEST_PF_MEMBERS in a struct declaration. |
| */ |
| #define JTEST_PF_MEMBER_INIT \ |
| 0, \ |
| 0 |
| |
| /* Member-Incrementing Macros */ |
| /*--------------------------------------------------------------------------------*/ |
| |
| /** |
| * Dispatch macro for incrementing #JTEST_PF_MEMBERS. |
| * |
| * @param xxx Values: 'passed', 'failed' |
| */ |
| #define JTEST_PF_INC_XXX(xxx, struct_pf_ptr, amount) \ |
| do \ |
| { \ |
| ((struct_pf_ptr)->xxx) += (amount); \ |
| } while (0) |
| |
| /** |
| * Specialization of the #JTEST_PF_INC_XXX macro to increment the passed |
| * member. |
| */ |
| #define JTEST_PF_INC_PASSED(struct_pf_ptr, amount) \ |
| JTEST_PF_INC_XXX(passed, struct_pf_ptr, amount) |
| |
| |
| /** |
| * Specialization of the #JTEST_PF_INC_XXX macro to increment the failed |
| * member. |
| */ |
| #define JTEST_PF_INC_FAILED(struct_pf_ptr, amount) \ |
| JTEST_PF_INC_XXX(failed, struct_pf_ptr, amount) |
| |
| |
| /* Member-Resetting Macros */ |
| /*--------------------------------------------------------------------------------*/ |
| |
| /** |
| * Dispatch macro for setting #JTEST_PF_MEMBERS to zero. |
| * |
| * @param xxx Values: 'passed', 'failed' |
| */ |
| #define JTEST_PF_RESET_XXX(xxx, struct_pf_ptr) \ |
| do \ |
| { \ |
| ((struct_pf_ptr)->xxx) = UINT32_C(0); \ |
| } while (0) |
| |
| /** |
| * Specialization of #JTEST_PF_RESET_XXX for the 'passed' member. |
| */ |
| #define JTEST_PF_RESET_PASSED(struct_pf_ptr) \ |
| JTEST_PF_RESET_XXX(passed, struct_pf_ptr) |
| |
| /** |
| * Specialization of #JTEST_PF_RESET_XXX for the 'failed' member. |
| */ |
| #define JTEST_PF_RESET_FAILED(struct_pf_ptr) \ |
| JTEST_PF_RESET_XXX(failed, struct_pf_ptr) |
| |
| #endif /* _JTEST_PF_H_ */ |