Tests: Add a check for color support when printing status
[lttng-tools.git] / tests / utils.h
index 7650865dd57c64411840db21541454ecf5774967..94891c0c64a3b2d8f29be1a922411f018466f677 100644 (file)
  */
 
 #include <stdio.h>
+#include <unistd.h>
 
 #define BRIGHT 1
 #define GREEN 32
 #define RED 31
 
-#define PRINT_OK() printf("%c[%d;%dmOK%c[%dm\n", 0x1B, BRIGHT, GREEN, 0x1B, 0);
-#define PRINT_FAIL() printf("%c[%d;%dmFAIL%c[%dm\n", 0x1B, BRIGHT, RED, 0x1B, 0);
+#define PRINT_OK()                                                     \
+do {                                                                   \
+       /* Check for color support */                                   \
+       if (isatty(STDOUT_FILENO)) {                                    \
+               printf("%c[%d;%dmOK%c[%dm\n", 0x1B, BRIGHT, GREEN, 0x1B, 0); \
+       } else {                                                        \
+               printf("OK\n");                                 \
+       }                                                               \
+} while (0)
+
+#define PRINT_FAIL() \
+do {                                                                   \
+       /* Check for color support */                                   \
+       if (isatty(STDOUT_FILENO)) {                                    \
+               printf("%c[%d;%dmFAIL%c[%dm\n", 0x1B, BRIGHT, RED, 0x1B, 0); \
+       } else {                                                        \
+               printf("FAIL\n");                                       \
+       }                                                               \
+} while (0)
This page took 0.023219 seconds and 4 git commands to generate.