Split termcolour implementations by platform and simplify the API

This commit is contained in:
2024-10-05 18:46:14 +01:00
parent 9e1e4688e4
commit d8c7b3162f
9 changed files with 209 additions and 152 deletions

View File

@@ -1,20 +1,16 @@
#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);
internal void handle_test_result(TestFuncResult result);
void run_tests(TestFunc *func1, ...) {
TerminalColourist colourist = wapp_shell_termcolour_get_colourist();
printf("\n");
handle_test_result(&colourist, func1());
handle_test_result(func1());
va_list args;
va_start(args, func1);
@@ -23,7 +19,7 @@ void run_tests(TestFunc *func1, ...) {
while (func) {
TestFuncResult result = func();
handle_test_result(&colourist, result);
handle_test_result(result);
func = va_arg(args, TestFunc *);
}
@@ -33,8 +29,7 @@ void run_tests(TestFunc *func1, ...) {
printf("\n");
}
internal void handle_test_result(TerminalColourist *colourist,
TestFuncResult result) {
internal void handle_test_result(TestFuncResult result) {
TerminalColour colour;
const char *result_text;
@@ -47,8 +42,8 @@ internal void handle_test_result(TerminalColourist *colourist,
}
printf("[");
wapp_shell_termcolour_print_text(colourist, result_text, colour);
wapp_shell_termcolour_clear_colour(colourist);
wapp_shell_termcolour_print_text(result_text, colour);
wapp_shell_termcolour_clear_colour();
printf("] %s\n", result.name);
if (!result.passed) {

View File

@@ -9,8 +9,7 @@
extern "C" {
#endif // __cplusplus
#define wapp_tester_result(PASSED) \
((TestFuncResult){.name = __func__, .passed = PASSED})
#define wapp_tester_result(PASSED) ((TestFuncResult){.name = __func__, .passed = PASSED})
#define wapp_tester_run_tests(...) run_tests(__VA_ARGS__, NULL)
typedef struct test_func_result TestFuncResult;