#include "tester.h" #include "aliases.h" #include "platform.h" #include "termcolour.h" #include #include #include internal void handle_test_result(TerminalColourist *colourist, TestFuncResult result); void run_tests(TestFunc *func1, ...) { TerminalColourist colourist = wapp_shell_termcolour_get_colourist(); printf("\n"); handle_test_result(&colourist, func1()); va_list args; va_start(args, func1); TestFunc *func = va_arg(args, TestFunc *); while (func) { TestFuncResult result = func(); handle_test_result(&colourist, result); func = va_arg(args, TestFunc *); } va_end(args); printf("\n"); } internal void handle_test_result(TerminalColourist *colourist, TestFuncResult result) { TerminalColour colour; const char *result_text; if (result.passed) { colour = WAPP_TERM_COLOUR_FG_BR_GREEN; result_text = "PASSED"; } else { colour = WAPP_TERM_COLOUR_FG_BR_RED; result_text = "FAILED"; } printf("["); wapp_shell_termcolour_print_text(colourist, result_text, colour); wapp_shell_termcolour_clear_colour(colourist); printf("] %s\n", result.name); if (!result.passed) { exit(EXIT_FAILURE); } }