Files
wizapp-stdlib/src/tester/tester.c
2024-06-16 23:17:54 +01:00

58 lines
1.2 KiB
C

#include "tester.h"
#include "aliases.h"
#include "platform.h"
#include "termcolour.h"
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
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);
}
}