#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_ */
|