From 135d7b87e11a9348cf467cfec5d8a9797c810fb0 Mon Sep 17 00:00:00 2001 From: "Michael Gene Brockus (Dreamer)" Date: Tue, 21 Apr 2026 19:32:15 -0500 Subject: [PATCH 1/2] fix theme color --- code/logic/common.c | 147 +++++++++++++++++++++++++++++++++++--------- code/logic/test.c | 90 +++++++++++++-------------- 2 files changed, 162 insertions(+), 75 deletions(-) diff --git a/code/logic/common.c b/code/logic/common.c index bd5b72c..b1b3a50 100644 --- a/code/logic/common.c +++ b/code/logic/common.c @@ -1719,35 +1719,105 @@ pizza_fstream_t *PIZZA_STDERR; int32_t PIZZA_IO_COLOR_ENABLE = 1; // Flag to enable/disable color output -// Define color codes for output -#define FOSSIL_IO_COLOR_RESET "\033[0m" -#define FOSSIL_IO_COLOR_RED "\033[31m" -#define FOSSIL_IO_COLOR_GREEN "\033[32m" -#define FOSSIL_IO_COLOR_YELLOW "\033[33m" -#define FOSSIL_IO_COLOR_BLUE "\033[34m" -#define FOSSIL_IO_COLOR_MAGENTA "\033[35m" -#define FOSSIL_IO_COLOR_CYAN "\033[36m" -#define FOSSIL_IO_COLOR_WHITE "\033[37m" -#define FOSSIL_IO_COLOR_BLACK "\033[30m" -#define FOSSIL_IO_COLOR_ORANGE "\033[38;5;208m" -#define FOSSIL_IO_COLOR_GRAY "\033[90m" - -// Bright colors -#define FOSSIL_IO_COLOR_BRIGHT_RED "\033[91m" -#define FOSSIL_IO_COLOR_BRIGHT_GREEN "\033[92m" -#define FOSSIL_IO_COLOR_BRIGHT_YELLOW "\033[93m" -#define FOSSIL_IO_COLOR_BRIGHT_BLUE "\033[94m" +// ================================================================ +// RESET +// ================================================================ +#define FOSSIL_IO_COLOR_RESET "\033[0m" + +// ================================================================ +// DARK (STANDARD) COLORS +// ================================================================ +#define FOSSIL_IO_COLOR_BLACK "\033[30m" +#define FOSSIL_IO_COLOR_RED "\033[31m" +#define FOSSIL_IO_COLOR_GREEN "\033[32m" +#define FOSSIL_IO_COLOR_YELLOW "\033[33m" +#define FOSSIL_IO_COLOR_BLUE "\033[34m" +#define FOSSIL_IO_COLOR_MAGENTA "\033[35m" +#define FOSSIL_IO_COLOR_CYAN "\033[36m" +#define FOSSIL_IO_COLOR_WHITE "\033[37m" +#define FOSSIL_IO_COLOR_GRAY "\033[90m" +#define FOSSIL_IO_COLOR_ORANGE "\033[38;5;208m" +#define FOSSIL_IO_COLOR_PINK "\033[38;5;205m" +#define FOSSIL_IO_COLOR_PURPLE "\033[38;5;93m" +#define FOSSIL_IO_COLOR_BROWN "\033[38;5;94m" +#define FOSSIL_IO_COLOR_TEAL "\033[38;5;30m" +#define FOSSIL_IO_COLOR_SILVER "\033[38;5;7m" + +// ================================================================ +// BRIGHT COLORS +// ================================================================ +#define FOSSIL_IO_COLOR_BRIGHT_BLACK "\033[90m" +#define FOSSIL_IO_COLOR_BRIGHT_RED "\033[91m" +#define FOSSIL_IO_COLOR_BRIGHT_GREEN "\033[92m" +#define FOSSIL_IO_COLOR_BRIGHT_YELLOW "\033[93m" +#define FOSSIL_IO_COLOR_BRIGHT_BLUE "\033[94m" #define FOSSIL_IO_COLOR_BRIGHT_MAGENTA "\033[95m" -#define FOSSIL_IO_COLOR_BRIGHT_CYAN "\033[96m" -#define FOSSIL_IO_COLOR_BRIGHT_WHITE "\033[97m" - -// Define text attributes -#define FOSSIL_IO_ATTR_BOLD "\033[1m" -#define FOSSIL_IO_ATTR_UNDERLINE "\033[4m" -#define FOSSIL_IO_ATTR_REVERSED "\033[7m" -#define FOSSIL_IO_ATTR_BLINK "\033[5m" -#define FOSSIL_IO_ATTR_HIDDEN "\033[8m" -#define FOSSIL_IO_ATTR_NORMAL "\033[22m" // For reverting to normal text +#define FOSSIL_IO_COLOR_BRIGHT_CYAN "\033[96m" +#define FOSSIL_IO_COLOR_BRIGHT_WHITE "\033[97m" + +// ================================================================ +// BACKGROUND COLORS +// ================================================================ +#define FOSSIL_IO_BG_BLACK "\033[40m" +#define FOSSIL_IO_BG_RED "\033[41m" +#define FOSSIL_IO_BG_GREEN "\033[42m" +#define FOSSIL_IO_BG_YELLOW "\033[43m" +#define FOSSIL_IO_BG_BLUE "\033[44m" +#define FOSSIL_IO_BG_MAGENTA "\033[45m" +#define FOSSIL_IO_BG_CYAN "\033[46m" +#define FOSSIL_IO_BG_WHITE "\033[47m" +#define FOSSIL_IO_BG_GRAY "\033[100m" +#define FOSSIL_IO_BG_ORANGE "\033[48;5;208m" +#define FOSSIL_IO_BG_PINK "\033[48;5;205m" +#define FOSSIL_IO_BG_PURPLE "\033[48;5;93m" +#define FOSSIL_IO_BG_BROWN "\033[48;5;94m" +#define FOSSIL_IO_BG_TEAL "\033[48;5;30m" +#define FOSSIL_IO_BG_SILVER "\033[48;5;7m" + +// Bright background colors +#define FOSSIL_IO_BG_BRIGHT_BLACK "\033[100m" +#define FOSSIL_IO_BG_BRIGHT_RED "\033[101m" +#define FOSSIL_IO_BG_BRIGHT_GREEN "\033[102m" +#define FOSSIL_IO_BG_BRIGHT_YELLOW "\033[103m" +#define FOSSIL_IO_BG_BRIGHT_BLUE "\033[104m" +#define FOSSIL_IO_BG_BRIGHT_MAGENTA "\033[105m" +#define FOSSIL_IO_BG_BRIGHT_CYAN "\033[106m" +#define FOSSIL_IO_BG_BRIGHT_WHITE "\033[107m" + +// ================================================================ +// TEXT ATTRIBUTES +// ================================================================ +// Standard attributes +#define FOSSIL_IO_ATTR_BOLD "\033[1m" +#define FOSSIL_IO_ATTR_DIM "\033[2m" +#define FOSSIL_IO_ATTR_ITALIC "\033[3m" +#define FOSSIL_IO_ATTR_UNDERLINE "\033[4m" +#define FOSSIL_IO_ATTR_BLINK "\033[5m" +#define FOSSIL_IO_ATTR_REVERSE "\033[7m" +#define FOSSIL_IO_ATTR_HIDDEN "\033[8m" +#define FOSSIL_IO_ATTR_STRIKETHROUGH "\033[9m" +#define FOSSIL_IO_ATTR_NORMAL "\033[22;23;24;25;27;28m" // Reset all attributes +#define FOSSIL_IO_ATTR_REVERSED "\033[7m" + +// Bright background colors +#define FOSSIL_IO_BG_BRIGHT_BLACK "\033[100m" +#define FOSSIL_IO_BG_BRIGHT_RED "\033[101m" +#define FOSSIL_IO_BG_BRIGHT_GREEN "\033[102m" +#define FOSSIL_IO_BG_BRIGHT_YELLOW "\033[103m" +#define FOSSIL_IO_BG_BRIGHT_BLUE "\033[104m" +#define FOSSIL_IO_BG_BRIGHT_MAGENTA "\033[105m" +#define FOSSIL_IO_BG_BRIGHT_CYAN "\033[106m" +#define FOSSIL_IO_BG_BRIGHT_WHITE "\033[107m" + +// Reset specific attributes +#define FOSSIL_IO_ATTR_RESET_BOLD "\033[22m" +#define FOSSIL_IO_ATTR_RESET_DIM "\033[22m" +#define FOSSIL_IO_ATTR_RESET_ITALIC "\033[23m" +#define FOSSIL_IO_ATTR_RESET_UNDERLINE "\033[24m" +#define FOSSIL_IO_ATTR_RESET_BLINK "\033[25m" +#define FOSSIL_IO_ATTR_RESET_REVERSE "\033[27m" +#define FOSSIL_IO_ATTR_RESET_HIDDEN "\033[28m" +#define FOSSIL_IO_ATTR_RESET_STRIKE "\033[29m" // Additional attributes #define FOSSIL_IO_ATTR_ITALIC "\033[3m" @@ -1777,7 +1847,18 @@ void pizza_io_apply_color(const char *color) { printf(FOSSIL_IO_COLOR_ORANGE); } else if (pizza_io_cstr_compare(color, "gray") == 0) { printf(FOSSIL_IO_COLOR_GRAY); + } else if (pizza_io_cstr_compare(color, "pink") == 0) { + printf(FOSSIL_IO_COLOR_PINK); + } else if (pizza_io_cstr_compare(color, "purple") == 0) { + printf(FOSSIL_IO_COLOR_PURPLE); + } else if (pizza_io_cstr_compare(color, "brown") == 0) { + printf(FOSSIL_IO_COLOR_BROWN); + } else if (pizza_io_cstr_compare(color, "teal") == 0) { + printf(FOSSIL_IO_COLOR_TEAL); + } else if (pizza_io_cstr_compare(color, "silver") == 0) { + printf(FOSSIL_IO_COLOR_SILVER); } + // Bright colors else if (pizza_io_cstr_compare(color, "bright_red") == 0) { printf(FOSSIL_IO_COLOR_BRIGHT_RED); @@ -1793,6 +1874,8 @@ void pizza_io_apply_color(const char *color) { printf(FOSSIL_IO_COLOR_BRIGHT_CYAN); } else if (pizza_io_cstr_compare(color, "bright_white") == 0) { printf(FOSSIL_IO_COLOR_BRIGHT_WHITE); + } else if (pizza_io_cstr_compare(color, "bright_black") == 0) { + printf(FOSSIL_IO_COLOR_BRIGHT_BLACK); } else { printf(FOSSIL_IO_COLOR_RESET); // Reset to default if color not recognized } @@ -1816,7 +1899,9 @@ void pizza_io_apply_attribute(const char *attribute) { printf(FOSSIL_IO_ATTR_ITALIC); } else if (pizza_io_cstr_compare(attribute, "strikethrough") == 0) { printf(FOSSIL_IO_ATTR_STRIKETHROUGH); - } else { + } else if (pizza_io_cstr_compare(attribute, "dim") == 0) { + printf(FOSSIL_IO_ATTR_DIM); + } else if (pizza_io_cstr_compare(attribute, "reset") == 0) { printf(FOSSIL_IO_ATTR_NORMAL); // Reset to normal if attribute not recognized } } @@ -1835,8 +1920,10 @@ void pizza_io_apply_position(const char *pos) { } else if (pizza_io_cstr_compare(pos, "right") == 0) { // Apply position logic for right printf("\033[1;999H"); // Move cursor to the top-right corner (example within reasonable bounds) + } else if (pizza_io_cstr_compare(pos, "center") == 0) { + // Apply position logic for center + printf("\033[12;40H"); // Move cursor to the center (example within reasonable bounds) } - // Add more positions if needed } // Function to print text with attributes, colors, positions, and format specifiers diff --git a/code/logic/test.c b/code/logic/test.c index 8b610d9..2b3bca2 100644 --- a/code/logic/test.c +++ b/code/logic/test.c @@ -1240,9 +1240,9 @@ void fossil_pizza_summary_timestamp(const fossil_pizza_engine_t *engine) switch (engine->pallet.theme) { case PIZZA_THEME_FOSSIL: - pizza_io_printf("{black,bold}\n=================================================================================={reset}\n"); - pizza_io_printf("{black,bold}Elapsed Time:{white} %s {black}(hh:mm:ss.micro,nano){reset}\n", time_buffer); - pizza_io_printf("{black,bold}=================================================================================={reset}\n"); + pizza_io_printf("{bright_black,bold}\n=================================================================================={reset}\n"); + pizza_io_printf("{bright_black,bold}Elapsed Time:{white} %s {bright_black}(hh:mm:ss.micro,nano){reset}\n", time_buffer); + pizza_io_printf("{bright_black,bold}=================================================================================={reset}\n"); break; case PIZZA_THEME_LIGHT: pizza_io_printf("{bright_blue,bold}\n=================================================================================={reset}\n"); @@ -1250,9 +1250,9 @@ void fossil_pizza_summary_timestamp(const fossil_pizza_engine_t *engine) pizza_io_printf("{bright_blue,bold}=================================================================================={reset}\n"); break; case PIZZA_THEME_DARK: - pizza_io_printf("{black,bold}\n=================================================================================={reset}\n"); - pizza_io_printf("{black,bold}Elapsed Time:{white} %s {black}(hh:mm:ss.micro,nano){reset}\n", time_buffer); - pizza_io_printf("{black,bold}=================================================================================={reset}\n"); + pizza_io_printf("{bright_black,bold}\n=================================================================================={reset}\n"); + pizza_io_printf("{bright_black,bold}Elapsed Time:{white} %s {bright_black}(hh:mm:ss.micro,nano){reset}\n", time_buffer); + pizza_io_printf("{bright_black,bold}=================================================================================={reset}\n"); break; case PIZZA_THEME_MAGA: pizza_io_printf("{red,bold}\n=================================================================================={reset}\n"); @@ -1283,11 +1283,11 @@ void fossil_pizza_summary_timestamp(const fossil_pizza_engine_t *engine) switch (engine->pallet.theme) { case PIZZA_THEME_FOSSIL: - pizza_io_printf("{black,bold}Average Time per Suite:{white} %12.2f ns {blue}({cyan}%8.2f us{blue} | {cyan}%8.3f ms{blue}){reset}\n", + pizza_io_printf("{bright_black,bold}Average Time per Suite:{white} %12.2f ns {bright_black}({cyan}%8.2f us{bright_black} | {cyan}%8.3f ms{bright_black}){reset}\n", avg_suite_ns, avg_suite_us, avg_suite_ms); - pizza_io_printf("{black,bold}Average Time per Test :{white} %12.2f ns {blue}({cyan}%8.2f us{blue} | {cyan}%8.3f ms{blue}){reset}\n", + pizza_io_printf("{bright_black,bold}Average Time per Test :{white} %12.2f ns {bright_black}({cyan}%8.2f us{bright_black} | {cyan}%8.3f ms{bright_black}){reset}\n", avg_test_ns, avg_test_us, avg_test_ms); - pizza_io_printf("{black,bold}=================================================================================={reset}\n"); + pizza_io_printf("{bright_black,bold}=================================================================================={reset}\n"); break; case PIZZA_THEME_LIGHT: pizza_io_printf("{white,bold}Average Time per Suite:{white} %12.2f ns {bright_blue}({cyan}%8.2f us{bright_blue} | {cyan}%8.3f ms{bright_blue}){reset}\n", @@ -1297,11 +1297,11 @@ void fossil_pizza_summary_timestamp(const fossil_pizza_engine_t *engine) pizza_io_printf("{white,bold}=================================================================================={reset}\n"); break; case PIZZA_THEME_DARK: - pizza_io_printf("{black,bold}Average Time per Suite:{white} %12.2f ns {blue}({cyan}%8.2f us{blue} | {cyan}%8.3f ms{blue}){reset}\n", + pizza_io_printf("{bright_black,bold}Average Time per Suite:{white} %12.2f ns {bright_black}({cyan}%8.2f us{bright_black} | {cyan}%8.3f ms{bright_black}){reset}\n", avg_suite_ns, avg_suite_us, avg_suite_ms); - pizza_io_printf("{black,bold}Average Time per Test :{white} %12.2f ns {blue}({cyan}%8.2f us{blue} | {cyan}%8.3f ms{blue}){reset}\n", + pizza_io_printf("{bright_black,bold}Average Time per Test :{white} %12.2f ns {bright_black}({cyan}%8.2f us{bright_black} | {cyan}%8.3f ms{bright_black}){reset}\n", avg_test_ns, avg_test_us, avg_test_ms); - pizza_io_printf("{black,bold}=================================================================================={reset}\n"); + pizza_io_printf("{bright_black,bold}=================================================================================={reset}\n"); break; case PIZZA_THEME_MAGA: pizza_io_printf("{red,bold}Average Time per Suite:{white} %12.2f ns {red}({cyan}%8.2f us{red} | {cyan}%8.3f ms{red}){reset}\n", @@ -1342,14 +1342,14 @@ void fossil_pizza_summary_scoreboard(const fossil_pizza_engine_t *engine) switch (engine->pallet.theme) { case PIZZA_THEME_FOSSIL: - pizza_io_printf("{black}[{cyan}::{black}] {blue}Suites run {reset}: {cyan}%zu{reset} {blue}Tests run {reset}: {cyan}%d{reset} {blue}Score {reset}: {cyan}%d{reset}/{white}%d{reset}\n", engine->count, engine->score_possible, engine->score_total, engine->score_possible); - pizza_io_printf("{black}[{cyan}::{black}] {blue}Passed {reset}: {gray}%d{reset} ({cyan}%06.2f%%{reset})\n", engine->score.passed, pass_pct); - pizza_io_printf("{black}[{cyan}::{black}] {blue}Failed {reset}: {gray}%d{reset} ({cyan}%06.2f%%{reset})\n", engine->score.failed, fail_pct); - pizza_io_printf("{black}[{cyan}::{black}] {blue}Skipped {reset}: {gray}%d{reset} ({cyan}%06.2f%%{reset})\n", engine->score.skipped, skip_pct); - pizza_io_printf("{black}[{cyan}::{black}] {blue}Timeouts {reset}: {gray}%d{reset} ({cyan}%06.2f%%{reset})\n", engine->score.timeout, timeout_pct); - pizza_io_printf("{black}[{cyan}::{black}] {blue}Unexpected {reset}: {gray}%d{reset} ({cyan}%06.2f%%{reset})\n", engine->score.unexpected, unexpected_pct); - pizza_io_printf("{black}[{cyan}::{black}] {blue}Empty {reset}: {gray}%d{reset} ({cyan}%06.2f%%{reset})\n", engine->score.empty, empty_pct); - pizza_io_printf("{black}[{cyan}::{black}] {blue}Stability: {reset} | {cyan}%06.2f%%{reset} | {blue}Health: {cyan}%06.2f%%{reset} | {blue}Success Rate: {cyan}%06.2f%%{reset} | {blue}Risk: {cyan}%06.2f%%{reset}\n", stability, health, success_rate, risk); + pizza_io_printf("{bright_black}[{cyan}::{bright_black}] {blue}Suites run {reset}: {cyan}%zu{reset} {blue}Tests run {reset}: {cyan}%d{reset} {blue}Score {reset}: {cyan}%d{reset}/{white}%d{reset}\n", engine->count, engine->score_possible, engine->score_total, engine->score_possible); + pizza_io_printf("{bright_black}[{cyan}::{bright_black}] {blue}Passed {reset}: {gray}%d{reset} ({cyan}%06.2f%%{reset})\n", engine->score.passed, pass_pct); + pizza_io_printf("{bright_black}[{cyan}::{bright_black}] {blue}Failed {reset}: {gray}%d{reset} ({cyan}%06.2f%%{reset})\n", engine->score.failed, fail_pct); + pizza_io_printf("{bright_black}[{cyan}::{bright_black}] {blue}Skipped {reset}: {gray}%d{reset} ({cyan}%06.2f%%{reset})\n", engine->score.skipped, skip_pct); + pizza_io_printf("{bright_black}[{cyan}::{bright_black}] {blue}Timeouts {reset}: {gray}%d{reset} ({cyan}%06.2f%%{reset})\n", engine->score.timeout, timeout_pct); + pizza_io_printf("{bright_black}[{cyan}::{bright_black}] {blue}Unexpected {reset}: {gray}%d{reset} ({cyan}%06.2f%%{reset})\n", engine->score.unexpected, unexpected_pct); + pizza_io_printf("{bright_black}[{cyan}::{bright_black}] {blue}Empty {reset}: {gray}%d{reset} ({cyan}%06.2f%%{reset})\n", engine->score.empty, empty_pct); + pizza_io_printf("{bright_black}[{cyan}::{bright_black}] {blue}Stability: {reset} | {cyan}%06.2f%%{reset} | {blue}Health: {cyan}%06.2f%%{reset} | {blue}Success Rate: {cyan}%06.2f%%{reset} | {blue}Risk: {cyan}%06.2f%%{reset}\n", stability, health, success_rate, risk); break; case PIZZA_THEME_LIGHT: @@ -1360,27 +1360,27 @@ void fossil_pizza_summary_scoreboard(const fossil_pizza_engine_t *engine) pizza_io_printf("{white}[{cyan}::{white}] {bright_blue}Timeouts {reset}: {gray}%d{reset} ({bright_cyan}%06.2f%%{reset})\n", engine->score.timeout, timeout_pct); pizza_io_printf("{white}[{cyan}::{white}] {bright_blue}Unexpected {reset}: {gray}%d{reset} ({bright_cyan}%06.2f%%{reset})\n", engine->score.unexpected, unexpected_pct); pizza_io_printf("{white}[{cyan}::{white}] {bright_blue}Empty {reset}: {gray}%d{reset} ({bright_cyan}%06.2f%%{reset})\n", engine->score.empty, empty_pct); - pizza_io_printf("{black}[{cyan}::{black}] {blue}Stability: {reset} | {cyan}%06.2f%%{reset} | {blue}Health{reset}: {cyan}%06.2f%%{reset} | {blue}Success Rate{reset}: {cyan}%06.2f%%{reset} | {blue}Risk {reset}: {cyan}%06.2f%%{reset}\n", stability, health, success_rate, risk); + pizza_io_printf("{bright_black}[{cyan}::{bright_black}] {blue}Stability: {reset} | {cyan}%06.2f%%{reset} | {blue}Health{reset}: {cyan}%06.2f%%{reset} | {blue}Success Rate{reset}: {cyan}%06.2f%%{reset} | {blue}Risk {reset}: {cyan}%06.2f%%{reset}\n", stability, health, success_rate, risk); break; case PIZZA_THEME_DARK: - pizza_io_printf("{black}[{cyan}::{black}] {blue}Suites run {reset}: {cyan}%zu{reset} {blue}Tests run {reset}: {cyan}%d{reset} {blue}Score {reset}: {cyan}%d{reset}/{white}%d{reset}\n", engine->count, engine->score_possible, engine->score_total, engine->score_possible); - pizza_io_printf("{black}[{cyan}::{black}] {blue}Passed {reset}: {gray}%d{reset} ({cyan}%06.2f%%{reset})\n", engine->score.passed, pass_pct); - pizza_io_printf("{black}[{cyan}::{black}] {blue}Failed {reset}: {gray}%d{reset} ({cyan}%06.2f%%{reset})\n", engine->score.failed, fail_pct); - pizza_io_printf("{black}[{cyan}::{black}] {blue}Skipped {reset}: {gray}%d{reset} ({cyan}%06.2f%%{reset})\n", engine->score.skipped, skip_pct); - pizza_io_printf("{black}[{cyan}::{black}] {blue}Timeouts {reset}: {gray}%d{reset} ({cyan}%06.2f%%{reset})\n", engine->score.timeout, timeout_pct); - pizza_io_printf("{black}[{cyan}::{black}] {blue}Unexpected {reset}: {gray}%d{reset} ({cyan}%06.2f%%{reset})\n", engine->score.unexpected, unexpected_pct); - pizza_io_printf("{black}[{cyan}::{black}] {blue}Empty {reset}: {gray}%d{reset} ({cyan}%06.2f%%{reset})\n", engine->score.empty, empty_pct); - pizza_io_printf("{black}[{cyan}::{black}] {blue}Stability: {reset} | {cyan}%06.2f%%{reset} | {blue}Health{reset}: {cyan}%06.2f%%{reset} | {blue}Success Rate{reset}: {cyan}%06.2f%%{reset} | {blue}Risk {reset}: {cyan}%06.2f%%{reset}\n", stability, health, success_rate, risk); + pizza_io_printf("{bright_black}[{cyan}::{bright_black}] {blue}Suites run {reset}: {cyan}%zu{reset} {blue}Tests run {reset}: {cyan}%d{reset} {blue}Score {reset}: {cyan}%d{reset}/{white}%d{reset}\n", engine->count, engine->score_possible, engine->score_total, engine->score_possible); + pizza_io_printf("{bright_black}[{cyan}::{bright_black}] {blue}Passed {reset}: {gray}%d{reset} ({cyan}%06.2f%%{reset})\n", engine->score.passed, pass_pct); + pizza_io_printf("{bright_black}[{cyan}::{bright_black}] {blue}Failed {reset}: {gray}%d{reset} ({cyan}%06.2f%%{reset})\n", engine->score.failed, fail_pct); + pizza_io_printf("{bright_black}[{cyan}::{bright_black}] {blue}Skipped {reset}: {gray}%d{reset} ({cyan}%06.2f%%{reset})\n", engine->score.skipped, skip_pct); + pizza_io_printf("{bright_black}[{cyan}::{bright_black}] {blue}Timeouts {reset}: {gray}%d{reset} ({cyan}%06.2f%%{reset})\n", engine->score.timeout, timeout_pct); + pizza_io_printf("{bright_black}[{cyan}::{bright_black}] {blue}Unexpected {reset}: {gray}%d{reset} ({cyan}%06.2f%%{reset})\n", engine->score.unexpected, unexpected_pct); + pizza_io_printf("{bright_black}[{cyan}::{bright_black}] {blue}Empty {reset}: {gray}%d{reset} ({cyan}%06.2f%%{reset})\n", engine->score.empty, empty_pct); + pizza_io_printf("{bright_black}[{cyan}::{bright_black}] {blue}Stability: {reset} | {cyan}%06.2f%%{reset} | {blue}Health{reset}: {cyan}%06.2f%%{reset} | {blue}Success Rate{reset}: {cyan}%06.2f%%{reset} | {blue}Risk {reset}: {cyan}%06.2f%%{reset}\n", stability, health, success_rate, risk); break; case PIZZA_THEME_MAGA: - pizza_io_printf("{black}[{cyan}::{black}] {red}Suites run {reset}: {white}%zu{reset} {red}Tests run {reset}: {white}%d{reset} {red}Score {reset}: {white}%d{reset}/{white}%d{reset}\n", engine->count, engine->score_possible, engine->score_total, engine->score_possible); - pizza_io_printf("{black}[{cyan}::{black}] {white}Passed {reset}: {white}%d{reset} ({white}%06.2f%%{reset})\n", engine->score.passed, pass_pct); - pizza_io_printf("{black}[{cyan}::{black}] {red}Failed {reset}: {white}%d{reset} ({white}%06.2f%%{reset})\n", engine->score.failed, fail_pct); - pizza_io_printf("{black}[{cyan}::{black}] {white}Skipped {reset}: {white}%d{reset} ({white}%06.2f%%{reset})\n", engine->score.skipped, skip_pct); - pizza_io_printf("{black}[{cyan}::{black}] {red}Timeouts {reset}: {white}%d{reset} ({white}%06.2f%%{reset})\n", engine->score.timeout, timeout_pct); - pizza_io_printf("{black}[{cyan}::{black}] {white}Unexpected {reset}: {white}%d{reset} ({white}%06.2f%%{reset})\n", engine->score.unexpected, unexpected_pct); - pizza_io_printf("{black}[{cyan}::{black}] {red}Empty {reset}: {white}%d{reset} ({white}%06.2f%%{reset})\n", engine->score.empty, empty_pct); - pizza_io_printf("{black}[{cyan}::{black}] {blue}Stability: {reset} | {cyan}%06.2f%%{reset} | {blue}Health{reset}: {cyan}%06.2f%%{reset} | {blue}Success Rate{reset}: {cyan}%06.2f%%{reset} | {blue}Risk {reset}: {cyan}%06.2f%%{reset}\n", stability, health, success_rate, risk); + pizza_io_printf("{bright_black}[{cyan}::{bright_black}] {red}Suites run {reset}: {white}%zu{reset} {red}Tests run {reset}: {white}%d{reset} {red}Score {reset}: {white}%d{reset}/{white}%d{reset}\n", engine->count, engine->score_possible, engine->score_total, engine->score_possible); + pizza_io_printf("{bright_black}[{cyan}::{bright_black}] {white}Passed {reset}: {white}%d{reset} ({white}%06.2f%%{reset})\n", engine->score.passed, pass_pct); + pizza_io_printf("{bright_black}[{cyan}::{bright_black}] {red}Failed {reset}: {white}%d{reset} ({white}%06.2f%%{reset})\n", engine->score.failed, fail_pct); + pizza_io_printf("{bright_black}[{cyan}::{bright_black}] {white}Skipped {reset}: {white}%d{reset} ({white}%06.2f%%{reset})\n", engine->score.skipped, skip_pct); + pizza_io_printf("{bright_black}[{cyan}::{bright_black}] {red}Timeouts {reset}: {white}%d{reset} ({white}%06.2f%%{reset})\n", engine->score.timeout, timeout_pct); + pizza_io_printf("{bright_black}[{cyan}::{bright_black}] {white}Unexpected {reset}: {white}%d{reset} ({white}%06.2f%%{reset})\n", engine->score.unexpected, unexpected_pct); + pizza_io_printf("{bright_black}[{cyan}::{bright_black}] {red}Empty {reset}: {white}%d{reset} ({white}%06.2f%%{reset})\n", engine->score.empty, empty_pct); + pizza_io_printf("{bright_black}[{cyan}::{bright_black}] {blue}Stability: {reset} | {cyan}%06.2f%%{reset} | {blue}Health{reset}: {cyan}%06.2f%%{reset} | {blue}Success Rate{reset}: {cyan}%06.2f%%{reset} | {blue}Risk {reset}: {cyan}%06.2f%%{reset}\n", stability, health, success_rate, risk); break; default: pizza_io_printf("{red}Unknown theme. Unable to display scoreboard.{reset}\n"); @@ -1405,10 +1405,10 @@ void fossil_pizza_summary_heading(const fossil_pizza_engine_t *engine) switch (engine->pallet.theme) { case PIZZA_THEME_FOSSIL: - pizza_io_printf("{black,bold}=================================================================================={reset}\n"); - pizza_io_printf("{black}[{cyan}::{black}] Test Summary [{cyan}::{black}] OS {cyan}%s{black}, Endianness: %s%s{black}, Architecture: {cyan}%s{reset}\n", + pizza_io_printf("{bright_black,bold}=================================================================================={reset}\n"); + pizza_io_printf("{bright_black}[{cyan}::{bright_black}] Test Summary [{cyan}::{bright_black}] OS {cyan}%s{bright_black}, Endianness: %s%s{bright_black}, Architecture: {cyan}%s{reset}\n", system_info.os_name, endian_color, endian_str, arch_info.architecture); - pizza_io_printf("{black,bold}=================================================================================={reset}\n"); + pizza_io_printf("{bright_black,bold}=================================================================================={reset}\n"); break; case PIZZA_THEME_LIGHT: @@ -1419,10 +1419,10 @@ void fossil_pizza_summary_heading(const fossil_pizza_engine_t *engine) break; case PIZZA_THEME_DARK: - pizza_io_printf("{black,bold}=================================================================================={reset}\n"); - pizza_io_printf("{black}[{cyan}::{black}] Test Summary [{cyan}::{black}] OS {cyan}%s{black}, Endianness: %s%s{black}, Architecture: {cyan}%s{reset}\n", + pizza_io_printf("{bright_black,bold}=================================================================================={reset}\n"); + pizza_io_printf("{bright_black}[{cyan}::{bright_black}] Test Summary [{cyan}::{bright_black}] OS {cyan}%s{bright_black}, Endianness: %s%s{bright_black}, Architecture: {cyan}%s{reset}\n", system_info.os_name, endian_color, endian_str, arch_info.architecture); - pizza_io_printf("{black,bold}=================================================================================={reset}\n"); + pizza_io_printf("{bright_black,bold}=================================================================================={reset}\n"); break; case PIZZA_THEME_MAGA: @@ -1448,13 +1448,13 @@ void fossil_pizza_ai_feedback(const fossil_pizza_engine_t *engine) switch (engine->pallet.theme) { case PIZZA_THEME_FOSSIL: - pizza_io_printf("\n{black}[{cyan}::{black}] Feedback [{cyan}::{black}] {white}%s{reset}\n", feedback); + pizza_io_printf("\n{bright_black}[{cyan}::{bright_black}] Feedback [{cyan}::{bright_black}] {white}%s{reset}\n", feedback); break; case PIZZA_THEME_LIGHT: pizza_io_printf("\n{white}[{cyan}::{white}] Feedback [{cyan}::{white}] {white}%s{reset}\n", feedback); break; case PIZZA_THEME_DARK: - pizza_io_printf("\n{black}[{cyan}::{black}] Feedback [{cyan}::{black}] {white}%s{reset}\n", feedback); + pizza_io_printf("\n{bright_black}[{cyan}::{bright_black}] Feedback [{cyan}::{bright_black}] {white}%s{reset}\n", feedback); break; case PIZZA_THEME_MAGA: pizza_io_printf("\n{red,bold}[Feedback]:{reset} {white}%s{reset}\n", feedback); From 7deacdf003e76efc062a5acf219f153eb131fd74 Mon Sep 17 00:00:00 2001 From: "Michael Gene Brockus (Dreamer)" Date: Tue, 21 Apr 2026 19:32:29 -0500 Subject: [PATCH 2/2] use theme in ci --- .github/workflows/meson_ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/meson_ci.yml b/.github/workflows/meson_ci.yml index 12f5039..a61971d 100644 --- a/.github/workflows/meson_ci.yml +++ b/.github/workflows/meson_ci.yml @@ -66,7 +66,7 @@ jobs: meson test -C builddir_msvc_${{ matrix.msvc_version }}_${{ matrix.libtype }} -v - --test-args="show --mode tree --verbose ci --result fail" + --test-args="show --mode tree --verbose ci --result fail theme=dark" # ========================================================= # macOS @@ -121,7 +121,7 @@ jobs: meson test -C builddir_${{ matrix.libtype }} -v - --test-args="show --mode tree --verbose ci --result fail" + --test-args="show --mode tree --verbose ci --result fail theme=light" # ========================================================= # Linux (Docker matrix) @@ -175,5 +175,5 @@ jobs: --default-library=${{ matrix.libtype }} && \ meson compile -C builddir_${{ matrix.libtype }} && \ meson test -C builddir_${{ matrix.libtype }} -v \ - --test-args='show --mode tree --verbose ci --result fail' + --test-args='show --mode tree --verbose ci --result fail theme=maga' " \ No newline at end of file