#ifndef _JTEST_DEFINE_H_
|
#define _JTEST_DEFINE_H_
|
|
/*--------------------------------------------------------------------------------*/
|
/* Macros and Defines */
|
/*--------------------------------------------------------------------------------*/
|
|
/**
|
* Makes a symbol for use as a struct name. Names made this way have two parts;
|
* the first parts is a prefix common to all structs of that class. The second
|
* is a specifier which differs for each instance of that struct type.
|
*/
|
#define JTEST_STRUCT_NAME(prefix, specifier) \
|
CONCAT(prefix, specifier)
|
|
/**
|
* Define a struct with type with a name generated by #JTEST_STRUCT_NAME().
|
*/
|
#define JTEST_DEFINE_STRUCT(type, struct_name) \
|
type struct_name
|
|
/**
|
* Declare a struct with type with a name generated by #JTEST_STRUCT_NAME().
|
*/
|
#define JTEST_DECLARE_STRUCT(struct_definition) \
|
extern struct_definition
|
|
/**
|
* Define and initialize a struct (created with JTEST_DEFINE_STRUCT()) and
|
* initialize it with init_values.
|
*/
|
#define JTEST_INIT_STRUCT(struct_definition, init_values) \
|
struct_definition = { \
|
init_values \
|
}
|
|
#endif /* _JTEST_DEFINE_H_ */
|