Re: [PATCH] selftests/ftrace: Make the coloring POSIX compliant

From: Juerg Haefliger
Date: Wed Feb 20 2019 - 15:20:32 EST


On Wed, 20 Feb 2019 14:49:34 -0500
Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:

> On Wed, 20 Feb 2019 17:13:33 +0100
> Juerg Haefliger <juerg.haefliger@xxxxxxxxxxxxx> wrote:
>
> > echo -e and \e are not POSIX. Depending on what /bin/sh is, we can get
> > incorrect output like:
>
> I'm curious to which shell this is.

Quite frankly I don't know but that's the output we get when we run it in
Jenkins. I'll try to find out.


> > $ -e -n [1] Basic trace file check
> > $ -e [PASS]
> >
> > Fix that by using \033 instead of \e and printf.
> >
> > Signed-off-by: Juerg Haefliger <juergh@xxxxxxxxxxxxx>
> > ---
> > tools/testing/selftests/ftrace/ftracetest | 17 +++++++++++------
> > 1 file changed, 11 insertions(+), 6 deletions(-)
> >
> > diff --git a/tools/testing/selftests/ftrace/ftracetest b/tools/testing/selftests/ftrace/ftracetest
> > index fc755e1b50f1..f200898e3e2c 100755
> > --- a/tools/testing/selftests/ftrace/ftracetest
> > +++ b/tools/testing/selftests/ftrace/ftracetest
> > @@ -161,10 +161,10 @@ color_green=
> > color_blue=
> > # If stdout exists and number of colors is eight or more, use them
> > if [ -t 1 -a "$ncolors" -ge 8 ]; then
> > - color_reset="\e[0m"
> > - color_red="\e[31m"
> > - color_green="\e[32m"
> > - color_blue="\e[34m"
> > + color_reset="\033[0m"
> > + color_red="\033[31m"
> > + color_green="\033[32m"
> > + color_blue="\033[34m"
> > fi
> >
> > strip_esc() {
> > @@ -173,8 +173,13 @@ strip_esc() {
> > }
> >
> > prlog() { # messages
> > - echo -e "$@"
> > - [ "$LOG_FILE" ] && echo -e "$@" | strip_esc >> $LOG_FILE
> > + newline="\n"
> > + if [ "$1" = "-n" ] ; then
> > + newline=
> > + shift
> > + fi
> > + printf "$@$newline"
> > + [ "$LOG_FILE" ] && printf "$@$newline" | strip_esc >> $LOG_FILE
> > }
> > catlog() { #file
> > cat $1
>
> This should probably be split into two patches, as they are two
> different issues.

Will do.

...Juerg


> -- Steve

Attachment: pgpBqCFoHOcD9.pgp
Description: OpenPGP digital signature