When printing the status of test is OK or FAIL, check if stdout is
attached to a terminal device. This way the output is not cluttered
with useless escape characters. Some use cases where we don't want
colors:

$ ./sometest | less

$ ./sometest > a.log

Signed-off-by: Christian Babeux <christian.bab...@efficios.com>
---
 tests/utils.h | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/tests/utils.h b/tests/utils.h
index 7650865..34c8bd6 100644
--- a/tests/utils.h
+++ b/tests/utils.h
@@ -16,10 +16,28 @@
  */
 
 #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(fileno(stdout))) {                                   \
+               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(fileno(stdout))) {                                   \
+               printf("%c[%d;%dmFAIL%c[%dm\n", 0x1B, BRIGHT, RED, 0x1B, 0); \
+       } else {                                                        \
+               printf("FAIL\n");                                       \
+       }                                                               \
+} while (0)
-- 
1.7.12


_______________________________________________
lttng-dev mailing list
lttng-dev@lists.lttng.org
http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

Reply via email to