58 lines
1.2 KiB
C
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);
|
|
}
|
|
}
|