mirror of
https://github.com/krgamestudios/Toy.git
synced 2026-04-15 23:04:08 +10:00
Some of these still work, others have just been dummied out for now. Also added tests for console colors tool, and tweaked it to work properly.
168 lines
3.3 KiB
C
168 lines
3.3 KiB
C
#include "toy_print.h"
|
|
#include "toy_console_colors.h"
|
|
|
|
#include <stdio.h>
|
|
|
|
int counter = 0;
|
|
|
|
void counterCallback(const char* msg) {
|
|
(void)msg;
|
|
counter++;
|
|
}
|
|
|
|
int test_callbacks(void) {
|
|
//set a custom print callback, invoke it, and reset
|
|
{
|
|
//setup
|
|
Toy_setPrintCallback(counterCallback);
|
|
|
|
//invoke
|
|
Toy_print("");
|
|
|
|
//check
|
|
if (counter != 1) {
|
|
fprintf(stderr, TOY_CC_ERROR "ERROR: Failed to set print callback\n" TOY_CC_RESET);
|
|
return -1;
|
|
}
|
|
|
|
//reset and retry
|
|
Toy_resetPrintCallback();
|
|
Toy_print("");
|
|
|
|
if (counter != 1) {
|
|
fprintf(stderr, TOY_CC_ERROR "ERROR: Failed to reset print callback\n" TOY_CC_RESET);
|
|
return -1;
|
|
}
|
|
|
|
//cleanup
|
|
counter = 0;
|
|
}
|
|
|
|
//set a custom error callback, invoke it, and reset
|
|
{
|
|
//setup
|
|
Toy_setErrorCallback(counterCallback);
|
|
|
|
//invoke
|
|
Toy_error("");
|
|
|
|
//check
|
|
if (counter != 1) {
|
|
fprintf(stderr, TOY_CC_ERROR "ERROR: Failed to set error callback\n" TOY_CC_RESET);
|
|
return -1;
|
|
}
|
|
|
|
//reset and retry
|
|
Toy_resetErrorCallback();
|
|
Toy_error("");
|
|
|
|
if (counter != 1) {
|
|
fprintf(stderr, TOY_CC_ERROR "ERROR: Failed to reset error callback\n" TOY_CC_RESET);
|
|
return -1;
|
|
}
|
|
|
|
//cleanup
|
|
counter = 0;
|
|
}
|
|
|
|
//set a custom assert failure callback, invoke it, and reset
|
|
{
|
|
//setup
|
|
Toy_setAssertFailureCallback(counterCallback);
|
|
|
|
//invoke
|
|
Toy_assertFailure("");
|
|
|
|
//check
|
|
if (counter != 1) {
|
|
fprintf(stderr, TOY_CC_ERROR "ERROR: Failed to set assert failure callback\n" TOY_CC_RESET);
|
|
return -1;
|
|
}
|
|
|
|
//reset and retry
|
|
Toy_resetAssertFailureCallback();
|
|
Toy_assertFailure("");
|
|
|
|
if (counter != 1) {
|
|
fprintf(stderr, TOY_CC_ERROR "ERROR: Failed to reset assert failure callback\n" TOY_CC_RESET);
|
|
return -1;
|
|
}
|
|
|
|
//cleanup
|
|
counter = 0;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
int test_console_colors(void) {
|
|
//test each font color
|
|
{
|
|
#define TEST_FONT(value) printf("\033[" value "m" #value TOY_CC_RESET "\n")
|
|
TEST_FONT(TOY_CC_FONT_BLACK);
|
|
TEST_FONT(TOY_CC_FONT_RED);
|
|
TEST_FONT(TOY_CC_FONT_GREEN);
|
|
TEST_FONT(TOY_CC_FONT_YELLOW);
|
|
TEST_FONT(TOY_CC_FONT_BLUE);
|
|
TEST_FONT(TOY_CC_FONT_MAGENTA);
|
|
TEST_FONT(TOY_CC_FONT_CYAN);
|
|
TEST_FONT(TOY_CC_FONT_WHITE);
|
|
TEST_FONT(TOY_CC_FONT_DEFAULT);
|
|
#undef TEST_FONT
|
|
}
|
|
|
|
//test each background color
|
|
{
|
|
#define TEST_BACK(value) printf("\033[" value "m" #value TOY_CC_RESET "\n")
|
|
TEST_BACK(TOY_CC_BACK_BLACK);
|
|
TEST_BACK(TOY_CC_BACK_RED);
|
|
TEST_BACK(TOY_CC_BACK_GREEN);
|
|
TEST_BACK(TOY_CC_BACK_YELLOW);
|
|
TEST_BACK(TOY_CC_BACK_BLUE);
|
|
TEST_BACK(TOY_CC_BACK_MAGENTA);
|
|
TEST_BACK(TOY_CC_BACK_CYAN);
|
|
TEST_BACK(TOY_CC_BACK_WHITE);
|
|
TEST_BACK(TOY_CC_BACK_DEFAULT);
|
|
#undef TEST_BACK
|
|
}
|
|
|
|
//test the commonly used shorthands
|
|
{
|
|
#define TEST_MACRO(value) printf(value #value TOY_CC_RESET "\n")
|
|
TEST_MACRO(TOY_CC_DEBUG);
|
|
TEST_MACRO(TOY_CC_NOTICE);
|
|
TEST_MACRO(TOY_CC_WARN);
|
|
TEST_MACRO(TOY_CC_ERROR);
|
|
TEST_MACRO(TOY_CC_ASSERT);
|
|
TEST_MACRO(TOY_CC_RESET);
|
|
#undef TEST_MACRO
|
|
}
|
|
|
|
//This will always return zero, so it needs a visual check
|
|
return 0;
|
|
}
|
|
|
|
int main(void) {
|
|
//run each test set, returning the total errors given
|
|
int total = 0, res = 0;
|
|
|
|
{
|
|
res = test_callbacks();
|
|
if (res == 0) {
|
|
printf(TOY_CC_NOTICE "All good\n" TOY_CC_RESET);
|
|
}
|
|
total += res;
|
|
}
|
|
|
|
{
|
|
res = test_console_colors();
|
|
if (res == 0) {
|
|
printf(TOY_CC_NOTICE "All good\n" TOY_CC_RESET);
|
|
}
|
|
total += res;
|
|
}
|
|
|
|
return total;
|
|
}
|
|
|