By default colors are disabled. Use WINETEST_COLOR=1 to enable colors in tests.
Signed-off-by: Rafał Harabień rafalh1992@o2.pl --- include/wine/test.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+)
diff --git a/include/wine/test.h b/include/wine/test.h index 4ec66d5..3388414 100644 --- a/include/wine/test.h +++ b/include/wine/test.h @@ -206,6 +206,9 @@ const char *winetest_platform = "windows"; /* report successful tests (BOOL) */ static int report_success = 0;
+/* use ANSI escape codes for output coloring */ +static int winetest_color = 0; + /* passing arguments around */ static int winetest_argc; static char** winetest_argv; @@ -303,14 +306,20 @@ int broken( int condition ) int winetest_vok( int condition, const char *msg, __winetest_va_list args ) { struct tls_data *data = get_tls_data(); + const char *color_red = "\e[91m"; + const char *color_reset = "\e[39m";
if (data->todo_level) { if (condition) { + if (winetest_color) + printf("%s", color_red); printf( "%s:%d: Test succeeded inside todo block: ", data->current_file, data->current_line ); vprintf(msg, args); + if (winetest_color) + printf("%s", color_reset); InterlockedIncrement(&todo_failures); return 0; } @@ -330,9 +339,13 @@ int winetest_vok( int condition, const char *msg, __winetest_va_list args ) { if (!condition) { + if (winetest_color) + printf("%s", color_red); printf( "%s:%d: Test failed: ", data->current_file, data->current_line ); vprintf(msg, args); + if (winetest_color) + printf("%s", color_reset); InterlockedIncrement(&failures); return 0; } @@ -669,6 +682,7 @@ int main( int argc, char **argv ) if (GetEnvironmentVariableA( "WINETEST_DEBUG", p, sizeof(p) )) winetest_debug = atoi(p); if (GetEnvironmentVariableA( "WINETEST_INTERACTIVE", p, sizeof(p) )) winetest_interactive = atoi(p); if (GetEnvironmentVariableA( "WINETEST_REPORT_SUCCESS", p, sizeof(p) )) report_success = atoi(p); + if (GetEnvironmentVariableA( "WINETEST_COLOR", p, sizeof(p) )) winetest_color = atoi(p);
if (!strcmp( winetest_platform, "windows" )) SetUnhandledExceptionFilter( exc_filter ); if (!winetest_interactive) SetErrorMode( SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX );