kunit: tool: Do not colorize output when redirected
authorKees Cook <keescook@chromium.org>
Thu, 24 Feb 2022 05:53:50 +0000 (21:53 -0800)
committerShuah Khan <skhan@linuxfoundation.org>
Mon, 4 Apr 2022 21:23:50 +0000 (15:23 -0600)
Filling log files with color codes makes diffs and other comparisons
difficult. Only emit vt100 codes when the stdout is a TTY.

Cc: Brendan Higgins <brendanhiggins@google.com>
Cc: linux-kselftest@vger.kernel.org
Cc: kunit-dev@googlegroups.com
Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-by: David Gow <davidgow@google.com>
Reviewed-by: Brendan Higgins <brendanhiggins@google.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
tools/testing/kunit/kunit_parser.py

index 05ff334761dd001cb283c08dde07f12f8a4e0635..807ed2bd683259233886672426b40021ef9461bb 100644 (file)
@@ -11,6 +11,7 @@
 
 from __future__ import annotations
 import re
+import sys
 
 import datetime
 from enum import Enum, auto
@@ -503,14 +504,20 @@ RESET = '\033[0;0m'
 
 def red(text: str) -> str:
        """Returns inputted string with red color code."""
+       if not sys.stdout.isatty():
+               return text
        return '\033[1;31m' + text + RESET
 
 def yellow(text: str) -> str:
        """Returns inputted string with yellow color code."""
+       if not sys.stdout.isatty():
+               return text
        return '\033[1;33m' + text + RESET
 
 def green(text: str) -> str:
        """Returns inputted string with green color code."""
+       if not sys.stdout.isatty():
+               return text
        return '\033[1;32m' + text + RESET
 
 ANSI_LEN = len(red(''))