Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 30 additions & 6 deletions minunit.h
Original file line number Diff line number Diff line change
Expand Up @@ -108,25 +108,49 @@ static void (*minunit_teardown)(void) = NULL;
minunit_teardown = teardown_fun;\
)

/* Test runner */
#define MU_RUN_TEST(test) MU__SAFE_BLOCK(\
#define MU_SETUP_TIMER MU__SAFE_BLOCK(\
if (minunit_real_timer==0 && minunit_proc_timer==0) {\
minunit_real_timer = mu_timer_real();\
minunit_proc_timer = mu_timer_cpu();\
}\
if (minunit_setup) (*minunit_setup)();\
minunit_status = 0;\
test();\
minunit_run++;\
)

#define MU_CHECK_AND_FAIL MU__SAFE_BLOCK(\
if (minunit_status) {\
minunit_fail++;\
printf("F");\
printf("\n%s\n", minunit_last_message);\
}\
)

/* Test runner */
#define MU_RUN_TEST(test) MU__SAFE_BLOCK(\
MU_SETUP_TIMER;\
if (minunit_setup) (*minunit_setup)();\
minunit_status = 0;\
test();\
minunit_run++;\
MU_CHECK_AND_FAIL;\
fflush(stdout);\
if (minunit_teardown) (*minunit_teardown)();\
)

/* Parameterized test runner */
#define MU_RUN_TEST_PARAMETERIZED(test, name, values) MU__SAFE_BLOCK(\
unsigned int length = sizeof(values) / sizeof(values[0]);\
for (int i=0; i<length; i++) {\
name = values[i];\
MU_SETUP_TIMER;\
if (minunit_setup) (*minunit_setup)();\
minunit_status = 0;\
test();\
minunit_run++;\
MU_CHECK_AND_FAIL;\
fflush(stdout);\
if (minunit_teardown) (*minunit_teardown)();\
}\
)

/* Report */
#define MU_REPORT() MU__SAFE_BLOCK(\
double minunit_end_real_timer;\
Expand Down