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