47 lines
1.1 KiB
C
47 lines
1.1 KiB
C
#define KNRM "\x1B[0m"
|
|
#define KRED "\x1B[31m"
|
|
#define KGRN "\x1B[32m"
|
|
#define KBLU "\x1B[34m"
|
|
|
|
#define red(str) KRED str KNRM
|
|
#define green(str) KGRN str KNRM
|
|
#define blue(str) KBLU str KNRM
|
|
|
|
#define ALERT KRED"[!]"KNRM
|
|
#define INFO KNRM"[~]"KNRM
|
|
#define GOOD KGRN"[*]"KNRM
|
|
|
|
#define lenofarr(axx) (sizeof(axx)/sizeof(axx[0]))
|
|
|
|
typedef struct {
|
|
int error;
|
|
int cases_passed;
|
|
} unit_result;
|
|
|
|
#define MU_UNIT_INIT() int err = 0; int unit_cases_run = 0;
|
|
#define MU_UNIT_EXIT() return (unit_result){err, unit_cases_run};
|
|
|
|
|
|
|
|
#define mu_assert(error_format, test, ...) \
|
|
do { \
|
|
unit_cases_run++; \
|
|
if (!(test)) { \
|
|
printf( ALERT"\t%s: " error_format "\n\n", __func__, ##__VA_ARGS__); \
|
|
err = 1; \
|
|
}\
|
|
} while (0)
|
|
|
|
#define mu_run_test(unit) \
|
|
do { \
|
|
printf(INFO" Testing "#unit"\n"); \
|
|
unit_result result = unit();\
|
|
units_run++; \
|
|
/*if (result.error) return result.error; */\
|
|
if (result.error){ printf(ALERT" Unit Failed \n"); err = 1; break;}\
|
|
printf(GOOD" Unit Passed \n"); \
|
|
} while (0)
|
|
|
|
|
|
extern int units_run;
|
|
extern int unit_cases_run; |