From: Johannes Sixt <j.sixt@viscovery.net>
To: Pierre Habouzit <madcoder@debian.org>
Cc: "Shawn O. Pearce" <spearce@spearce.org>, git@vger.kernel.org
Subject: Re: [PATCH] Add some fancy colors in the test library when terminal supports it.
Date: Mon, 22 Oct 2007 10:53:36 +0200 [thread overview]
Message-ID: <471C6510.8010300@viscovery.net> (raw)
In-Reply-To: <20071022081341.GC32763@artemis.corp>
Pierre Habouzit schrieb:
> Signed-off-by: Pierre Habouzit <madcoder@debian.org>
> ---
>
> Maybe this is just me, but I don't find the output of the test-suite
> easy to watch while scrolling. This puts some colors in proper places.
>
> * end-test summaries are in green or red depending on the sucess of
> the tests.
> * errors are in red.
> * skipped tests and other things that tests `say` are in brown (now
> you can _see_ that your testsuite skips some tests on purpose, I
> only noticed recently that I missed part of the environment for
> proper testing).
>
> I'm not 100% sure the test to see if terminal supports color is correct, and
> people using emacs shell buffer or alike tools may have better ideas on how to
> make it.
>
> and yes, I know that it "depends" upon tput, but if tput isn't available, the
> [ "x$TERM" != "xdumb" ] && tput hpa 60 >/dev/null 2>&1 && tput setaf 1 >/dev/null 2>&1
> expression will fail, and color will be disabled.
>
> t/test-lib.sh | 32 ++++++++++++++++++++++----------
> 1 files changed, 22 insertions(+), 10 deletions(-)
>
> diff --git a/t/test-lib.sh b/t/test-lib.sh
> index cc1253c..c6521c0 100644
> --- a/t/test-lib.sh
> +++ b/t/test-lib.sh
> @@ -59,14 +59,24 @@ esac
> # '
> # . ./test-lib.sh
>
> +[ "x$TERM" != "xdumb" ] && tput hpa 60 >/dev/null 2>&1 && tput setaf 1 >/dev/null 2>&1
> +nocolor=$?
test "x$TERM" != "xdumb" &&
tput hpa 60 >/dev/null 2>&1 &&
tput setaf 1 >/dev/null 2>&1 &&
color=t
BTW, doesn't tput fail if stdout/stderr is not a terminal, like above?
> +
> +say_color () {
> + [ "$nocolor" = 0 ] && [ "$1" != '-1' ] && tput setaf "$1"
> + shift
> + echo "* $*"
> + tput op
> +}
What if tput is not available, like on Windows? How about this (at the end
of the file, so it can obey --no-color):
if test "$color"; then
say_color () {
test "$1" != '-1' && tput setaf "$1"
shift
echo "* $*"
tput op
}
else
say_color() {
shift
echo "* $*"
}
fi
> + --no-color)
> + nocolor=1; shift ;;
color=; shift ;;
-- Hannes "We don't need no double negation"
next prev parent reply other threads:[~2007-10-22 8:53 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-22 8:13 [PATCH] Add some fancy colors in the test library when terminal supports it Pierre Habouzit
2007-10-22 8:53 ` Johannes Sixt [this message]
2007-10-22 11:24 ` Pierre Habouzit
2007-10-22 11:35 ` Johannes Sixt
2007-10-22 12:11 ` Pierre Habouzit
2007-10-22 12:18 ` Johannes Sixt
2007-10-22 13:45 ` Pierre Habouzit
2007-10-23 4:08 ` Christian Couder
2007-10-23 6:37 ` Johannes Sixt
2007-10-23 8:13 ` Pierre Habouzit
-- strict thread matches above, loose matches on Subject: below --
2007-10-24 20:03 Small enhancements of the test-lib.sh Pierre Habouzit
[not found] ` <1193256219-24222-2-git-send-email-madcoder@debian.org>
2007-10-24 20:28 ` [PATCH] Add some fancy colors in the test library when terminal supports it Pierre Habouzit
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=471C6510.8010300@viscovery.net \
--to=j.sixt@viscovery.net \
--cc=git@vger.kernel.org \
--cc=madcoder@debian.org \
--cc=spearce@spearce.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).