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 --- tools/testing/kunit/kunit_parser.py | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/tools/testing/kunit/kunit_parser.py b/tools/testing/kunit/kunit_parser.py index 05ff334761dd..807ed2bd6832 100644 --- a/tools/testing/kunit/kunit_parser.py +++ b/tools/testing/kunit/kunit_parser.py @@ -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(''))
On Thu, Feb 24, 2022 at 1:53 PM Kees Cook keescook@chromium.org wrote:
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
Ah, you can tell a tool has "made it" when people are redirecting its output!
This works fine here.
Reviewed-by: David Gow davidgow@google.com
Thanks, -- David
tools/testing/kunit/kunit_parser.py | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/tools/testing/kunit/kunit_parser.py b/tools/testing/kunit/kunit_parser.py index 05ff334761dd..807ed2bd6832 100644 --- a/tools/testing/kunit/kunit_parser.py +++ b/tools/testing/kunit/kunit_parser.py @@ -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(''))
2.30.2
-- You received this message because you are subscribed to the Google Groups "KUnit Development" group. To unsubscribe from this group and stop receiving emails from it, send an email to kunit-dev+unsubscribe@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/kunit-dev/20220224055350.1854078-1-keescoo....
On Thu, Feb 24, 2022 at 02:43:53PM +0800, David Gow wrote:
On Thu, Feb 24, 2022 at 1:53 PM Kees Cook keescook@chromium.org wrote:
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
Ah, you can tell a tool has "made it" when people are redirecting its output!
Heheh. Indeed! I have some more patches coming where I put a diff of output in the commit log. ;)
This works fine here.
Reviewed-by: David Gow davidgow@google.com
Thanks!
-Kees
Thanks, -- David
tools/testing/kunit/kunit_parser.py | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/tools/testing/kunit/kunit_parser.py b/tools/testing/kunit/kunit_parser.py index 05ff334761dd..807ed2bd6832 100644 --- a/tools/testing/kunit/kunit_parser.py +++ b/tools/testing/kunit/kunit_parser.py @@ -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(''))
2.30.2
-- You received this message because you are subscribed to the Google Groups "KUnit Development" group. To unsubscribe from this group and stop receiving emails from it, send an email to kunit-dev+unsubscribe@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/kunit-dev/20220224055350.1854078-1-keescoo....
On Wed, Feb 23, 2022 at 9:53 PM Kees Cook keescook@chromium.org wrote:
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
tools/testing/kunit/kunit_parser.py | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/tools/testing/kunit/kunit_parser.py b/tools/testing/kunit/kunit_parser.py index 05ff334761dd..807ed2bd6832 100644 --- a/tools/testing/kunit/kunit_parser.py +++ b/tools/testing/kunit/kunit_parser.py @@ -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
I'd been thinking about doing this for a while. I'd just gotten used to removing them via sed, or ending pipes with less -R. I totally agree it's for the best that colors be turned off by default when piping.
My hesitation was whether we'd want to introduce a flag like grep et al have. I.e. --color=auto/always/etc.
Pros: * consistency with grep, maybe less surprise * allows wrappers around kunit.py to redirect output and still show color * this is very niche and I know it. But I happen to own such a wrapper :)
Cons: * an extra flag that's very niche * I'm likely the only person to have ever used `kunit.py run | ... | less -R` * the logic to check for coloring becomes more complicated, need to add a helper
I'm fine if we just stick with this simpler approach or do it later. My aforementioned wrapper only redirects stdout when necessary anyways.
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(''))
2.30.2
-- You received this message because you are subscribed to the Google Groups "KUnit Development" group. To unsubscribe from this group and stop receiving emails from it, send an email to kunit-dev+unsubscribe@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/kunit-dev/20220224055350.1854078-1-keescoo....
On Thu, Feb 24, 2022 at 12:53 AM Kees Cook keescook@chromium.org wrote:
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: Brendan Higgins brendanhiggins@google.com
linux-kselftest-mirror@lists.linaro.org