From: Daniel Latypov <dlatypov@google.com>
To: Kees Cook <keescook@chromium.org>
Cc: Brendan Higgins <brendanhiggins@google.com>,
linux-kselftest@vger.kernel.org, kunit-dev@googlegroups.com,
David Gow <davidgow@google.com>,
linux-kernel@vger.kernel.org, linux-hardening@vger.kernel.org
Subject: Re: [PATCH] kunit: tool: Do not colorize output when redirected
Date: Thu, 24 Feb 2022 10:28:12 -0800 [thread overview]
Message-ID: <CAGS_qxo1UkRUbXnX7NkfDCLhqa2-_dn3poKBi=NyGJ4C0EhUmw@mail.gmail.com> (raw)
In-Reply-To: <20220224055350.1854078-1-keescook@chromium.org>
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-keescook%40chromium.org.
next prev parent reply other threads:[~2022-02-24 18:28 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-24 5:53 [PATCH] kunit: tool: Do not colorize output when redirected Kees Cook
2022-02-24 6:43 ` David Gow
2022-02-24 6:46 ` Kees Cook
2022-02-24 18:28 ` Daniel Latypov [this message]
2022-03-23 23:30 ` Brendan Higgins
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAGS_qxo1UkRUbXnX7NkfDCLhqa2-_dn3poKBi=NyGJ4C0EhUmw@mail.gmail.com' \
--to=dlatypov@google.com \
--cc=brendanhiggins@google.com \
--cc=davidgow@google.com \
--cc=keescook@chromium.org \
--cc=kunit-dev@googlegroups.com \
--cc=linux-hardening@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).