Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1680677 > unrolled thread

[PATCH 4/4] selftests: ftrace: Output only to console with "--logdir -"

Started byMasami Hiramatsu <mhiramat@kernel.org>
First post2017-07-04 08:40 +0200
Last post2017-07-07 02:50 +0200
Articles 7 — 3 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [PATCH 4/4] selftests: ftrace: Output only to console with "--logdir -" Masami Hiramatsu <mhiramat@kernel.org> - 2017-07-04 08:40 +0200
    Re: [PATCH 4/4] selftests: ftrace: Output only to console with  "--logdir -" Steven Rostedt <rostedt@goodmis.org> - 2017-07-05 18:30 +0200
      Re: [PATCH 4/4] selftests: ftrace: Output only to console with  "--logdir -" Steven Rostedt <rostedt@goodmis.org> - 2017-07-05 18:30 +0200
        Re: [PATCH 4/4] selftests: ftrace: Output only to console with  "--logdir -" Masami Hiramatsu <mhiramat@kernel.org> - 2017-07-06 08:10 +0200
      Re: [PATCH 4/4] selftests: ftrace: Output only to console with  "--logdir -" Stafford Horne <shorne@gmail.com> - 2017-07-06 15:10 +0200
        Re: [PATCH 4/4] selftests: ftrace: Output only to console with  "--logdir -" Steven Rostedt <rostedt@goodmis.org> - 2017-07-06 15:20 +0200
        Re: [PATCH 4/4] selftests: ftrace: Output only to console with  "--logdir -" Masami Hiramatsu <mhiramat@kernel.org> - 2017-07-07 02:50 +0200

#1680677 — [PATCH 4/4] selftests: ftrace: Output only to console with "--logdir -"

FromMasami Hiramatsu <mhiramat@kernel.org>
Date2017-07-04 08:40 +0200
Subject[PATCH 4/4] selftests: ftrace: Output only to console with "--logdir -"
Message-ID<tZpF8-4BK-11@gated-at.bofh.it>
Output logs only to console if "-" is given to --logdir
option. In this case, ftracetest doesn't record any log
on the disk, and all logs immediately shown (including
all command logs.) Since there is no "tee" in the middle
of command and console, it outputs the log really soon.

This option is useful only when the console is logged.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
---
 tools/testing/selftests/ftrace/ftracetest |   29 +++++++++++++++++++++--------
 1 file changed, 21 insertions(+), 8 deletions(-)

diff --git a/tools/testing/selftests/ftrace/ftracetest b/tools/testing/selftests/ftrace/ftracetest
index 892ca4e..25792ee 100755
--- a/tools/testing/selftests/ftrace/ftracetest
+++ b/tools/testing/selftests/ftrace/ftracetest
@@ -19,6 +19,7 @@ echo "		-vvv       Alias of -v -v -v (Show all commands immediately)"
 echo "		--fail-unsupported Treat UNSUPPORTED as a failure"
 echo "		-d|--debug Debug mode (trace all shell commands)"
 echo "		-l|--logdir <dir> Save logs on the <dir>"
+echo "		            If <dir> is -, all logs output in console only"
 exit $1
 }
 
@@ -127,14 +128,20 @@ if [ -z "$TRACING_DIR" -o ! -d "$TRACING_DIR" ]; then
 fi
 
 # Preparing logs
-LOG_FILE=$LOG_DIR/ftracetest.log
-mkdir -p $LOG_DIR || errexit "Failed to make a log directory: $LOG_DIR"
-date > $LOG_FILE
+if [ "x$LOG_DIR" = "x-" ]; then
+  LOG_FILE=
+  date
+else
+  LOG_FILE=$LOG_DIR/ftracetest.log
+  mkdir -p $LOG_DIR || errexit "Failed to make a log directory: $LOG_DIR"
+  date > $LOG_FILE
+fi
+
 prlog() { # messages
-  echo "$@" | tee -a $LOG_FILE
+  [ -z "$LOG_FILE" ] && echo "$@" || echo "$@" | tee -a $LOG_FILE
 }
 catlog() { #file
-  cat $1 | tee -a $LOG_FILE
+  [ -z "$LOG_FILE" ] && cat $1 || cat $1 | tee -a $LOG_FILE
 }
 prlog "=== Ftrace unit tests ==="
 
@@ -255,12 +262,18 @@ __run_test() { # testfile
 # Run one test case
 run_test() { # testfile
   local testname=`basename $1`
-  local testlog=`mktemp $LOG_DIR/${testname}-log.XXXXXX`
+  if [ "$LOG_FILE" ] ; then
+    local testlog=`mktemp $LOG_DIR/${testname}-log.XXXXXX`
+  else
+    local testlog=`/proc/self/fd/1`
+  fi
   export TMPDIR=`mktemp -d /tmp/ftracetest-dir.XXXXXX`
   testcase $1
   echo "execute$INSTANCE: "$1 > $testlog
   SIG_RESULT=0
-  if [ $VERBOSE -ge 3 ]; then
+  if [ -z "$LOG_FILE" ]; then
+    __run_test $1 2>&1
+  elif [ $VERBOSE -ge 3 ]; then
     __run_test $1 | tee -a $testlog 2>&1
   elif [ $VERBOSE -eq 2 ]; then
     __run_test $1 2>> $testlog | tee -a $testlog
@@ -270,7 +283,7 @@ run_test() { # testfile
   eval_result $SIG_RESULT
   if [ $? -eq 0 ]; then
     # Remove test log if the test was done as it was expected.
-    [ $KEEP_LOG -eq 0 ] && rm $testlog
+    [ $KEEP_LOG -eq 0 -a "$LOG_FILE" ] && rm $testlog
   else
     [ $VERBOSE -eq 1 -o $VERBOSE -eq 2 ] && catlog $testlog
     TOTAL_RESULT=1

[toc] | [next] | [standalone]


#1681643 — Re: [PATCH 4/4] selftests: ftrace: Output only to console with "--logdir -"

FromSteven Rostedt <rostedt@goodmis.org>
Date2017-07-05 18:30 +0200
SubjectRe: [PATCH 4/4] selftests: ftrace: Output only to console with "--logdir -"
Message-ID<tZVlE-aF-29@gated-at.bofh.it>
In reply to#1680677
On Tue,  4 Jul 2017 15:38:55 +0900
Masami Hiramatsu <mhiramat@kernel.org> wrote:

> Output logs only to console if "-" is given to --logdir
> option. In this case, ftracetest doesn't record any log
> on the disk, and all logs immediately shown (including
> all command logs.) Since there is no "tee" in the middle
> of command and console, it outputs the log really soon.
> 
> This option is useful only when the console is logged.
> 
> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> ---
>  tools/testing/selftests/ftrace/ftracetest |   29 +++++++++++++++++++++--------
>  1 file changed, 21 insertions(+), 8 deletions(-)
> 
> diff --git a/tools/testing/selftests/ftrace/ftracetest b/tools/testing/selftests/ftrace/ftracetest
> index 892ca4e..25792ee 100755
> --- a/tools/testing/selftests/ftrace/ftracetest
> +++ b/tools/testing/selftests/ftrace/ftracetest
> @@ -19,6 +19,7 @@ echo "		-vvv       Alias of -v -v -v (Show all commands immediately)"
>  echo "		--fail-unsupported Treat UNSUPPORTED as a failure"
>  echo "		-d|--debug Debug mode (trace all shell commands)"
>  echo "		-l|--logdir <dir> Save logs on the <dir>"
> +echo "		            If <dir> is -, all logs output in console only"
>  exit $1
>  }
>  
> @@ -127,14 +128,20 @@ if [ -z "$TRACING_DIR" -o ! -d "$TRACING_DIR" ]; then
>  fi
>  
>  # Preparing logs
> -LOG_FILE=$LOG_DIR/ftracetest.log
> -mkdir -p $LOG_DIR || errexit "Failed to make a log directory: $LOG_DIR"
> -date > $LOG_FILE
> +if [ "x$LOG_DIR" = "x-" ]; then
> +  LOG_FILE=
> +  date
> +else
> +  LOG_FILE=$LOG_DIR/ftracetest.log
> +  mkdir -p $LOG_DIR || errexit "Failed to make a log directory: $LOG_DIR"
> +  date > $LOG_FILE
> +fi
> +
>  prlog() { # messages
> -  echo "$@" | tee -a $LOG_FILE
> +  [ -z "$LOG_FILE" ] && echo "$@" || echo "$@" | tee -a $LOG_FILE
>  }
>  catlog() { #file
> -  cat $1 | tee -a $LOG_FILE
> +  [ -z "$LOG_FILE" ] && cat $1 || cat $1 | tee -a $LOG_FILE
>  }
>  prlog "=== Ftrace unit tests ==="
>  
> @@ -255,12 +262,18 @@ __run_test() { # testfile
>  # Run one test case
>  run_test() { # testfile
>    local testname=`basename $1`
> -  local testlog=`mktemp $LOG_DIR/${testname}-log.XXXXXX`
> +  if [ "$LOG_FILE" ] ; then

Shouldn't this be

	if [ ! -z "$LOG_FILE" ]; then

?

> +    local testlog=`mktemp $LOG_DIR/${testname}-log.XXXXXX`
> +  else
> +    local testlog=`/proc/self/fd/1`

cute trick.

> +  fi
>    export TMPDIR=`mktemp -d /tmp/ftracetest-dir.XXXXXX`
>    testcase $1
>    echo "execute$INSTANCE: "$1 > $testlog
>    SIG_RESULT=0
> -  if [ $VERBOSE -ge 3 ]; then
> +  if [ -z "$LOG_FILE" ]; then
> +    __run_test $1 2>&1
> +  elif [ $VERBOSE -ge 3 ]; then
>      __run_test $1 | tee -a $testlog 2>&1
>    elif [ $VERBOSE -eq 2 ]; then
>      __run_test $1 2>> $testlog | tee -a $testlog
> @@ -270,7 +283,7 @@ run_test() { # testfile
>    eval_result $SIG_RESULT
>    if [ $? -eq 0 ]; then
>      # Remove test log if the test was done as it was expected.
> -    [ $KEEP_LOG -eq 0 ] && rm $testlog
> +    [ $KEEP_LOG -eq 0 -a "$LOG_FILE" ] && rm $testlog

again, don't we need to test "$LOG_FILE"?

-- Steve

>    else
>      [ $VERBOSE -eq 1 -o $VERBOSE -eq 2 ] && catlog $testlog
>      TOTAL_RESULT=1

[toc] | [prev] | [next] | [standalone]


#1681644 — Re: [PATCH 4/4] selftests: ftrace: Output only to console with "--logdir -"

FromSteven Rostedt <rostedt@goodmis.org>
Date2017-07-05 18:30 +0200
SubjectRe: [PATCH 4/4] selftests: ftrace: Output only to console with "--logdir -"
Message-ID<tZVlF-aF-35@gated-at.bofh.it>
In reply to#1681643
On Wed, 5 Jul 2017 12:25:06 -0400
Steven Rostedt <rostedt@goodmis.org> wrote:

 
> > @@ -255,12 +262,18 @@ __run_test() { # testfile
> >  # Run one test case
> >  run_test() { # testfile
> >    local testname=`basename $1`
> > -  local testlog=`mktemp $LOG_DIR/${testname}-log.XXXXXX`
> > +  if [ "$LOG_FILE" ] ; then  
> 
> Shouldn't this be
> 
> 	if [ ! -z "$LOG_FILE" ]; then
> 
> ?
> 

OK, I just checked it out. I guess "" is considered zero and
"<anything>" is considered 1.

Hmm, do we do this in other places too. Just makes me unconfortable.

-- Steve

[toc] | [prev] | [next] | [standalone]


#1682062 — Re: [PATCH 4/4] selftests: ftrace: Output only to console with "--logdir -"

FromMasami Hiramatsu <mhiramat@kernel.org>
Date2017-07-06 08:10 +0200
SubjectRe: [PATCH 4/4] selftests: ftrace: Output only to console with "--logdir -"
Message-ID<u089d-Ad-5@gated-at.bofh.it>
In reply to#1681644
On Wed, 5 Jul 2017 12:29:17 -0400
Steven Rostedt <rostedt@goodmis.org> wrote:

> On Wed, 5 Jul 2017 12:25:06 -0400
> Steven Rostedt <rostedt@goodmis.org> wrote:
> 
>  
> > > @@ -255,12 +262,18 @@ __run_test() { # testfile
> > >  # Run one test case
> > >  run_test() { # testfile
> > >    local testname=`basename $1`
> > > -  local testlog=`mktemp $LOG_DIR/${testname}-log.XXXXXX`
> > > +  if [ "$LOG_FILE" ] ; then  
> > 
> > Shouldn't this be
> > 
> > 	if [ ! -z "$LOG_FILE" ]; then
> > 
> > ?
> > 
> 
> OK, I just checked it out. I guess "" is considered zero and
> "<anything>" is considered 1.
> 
> Hmm, do we do this in other places too. Just makes me unconfortable.

OK, in that case, I can cleanup the code with [ ! -z "$VAR" ]

Thank you,

> 
> -- Steve
> 


-- 
Masami Hiramatsu <mhiramat@kernel.org>

[toc] | [prev] | [next] | [standalone]


#1682417 — Re: [PATCH 4/4] selftests: ftrace: Output only to console with "--logdir -"

FromStafford Horne <shorne@gmail.com>
Date2017-07-06 15:10 +0200
SubjectRe: [PATCH 4/4] selftests: ftrace: Output only to console with "--logdir -"
Message-ID<u0eHF-4JM-29@gated-at.bofh.it>
In reply to#1681643
On Wed, Jul 05, 2017 at 12:25:06PM -0400, Steven Rostedt wrote:
> On Tue,  4 Jul 2017 15:38:55 +0900
> Masami Hiramatsu <mhiramat@kernel.org> wrote:
> 
> > +    local testlog=`mktemp $LOG_DIR/${testname}-log.XXXXXX`
> > +  else
> > +    local testlog=`/proc/self/fd/1`
> 
> cute trick.

Shouldn't this be:

   local testlog=/proc/self/fd/1

without the backticks and subshell? We just want to write to the stdout
file not execute it.

Or am missing something.

-Stafford

[toc] | [prev] | [next] | [standalone]


#1682420 — Re: [PATCH 4/4] selftests: ftrace: Output only to console with "--logdir -"

FromSteven Rostedt <rostedt@goodmis.org>
Date2017-07-06 15:20 +0200
SubjectRe: [PATCH 4/4] selftests: ftrace: Output only to console with "--logdir -"
Message-ID<u0eRj-4MZ-5@gated-at.bofh.it>
In reply to#1682417
On Thu, 6 Jul 2017 22:06:58 +0900
Stafford Horne <shorne@gmail.com> wrote:

> On Wed, Jul 05, 2017 at 12:25:06PM -0400, Steven Rostedt wrote:
> > On Tue,  4 Jul 2017 15:38:55 +0900
> > Masami Hiramatsu <mhiramat@kernel.org> wrote:
> >   
> > > +    local testlog=`mktemp $LOG_DIR/${testname}-log.XXXXXX`
> > > +  else
> > > +    local testlog=`/proc/self/fd/1`  
> > 
> > cute trick.  
> 
> Shouldn't this be:
> 
>    local testlog=/proc/self/fd/1
> 
> without the backticks and subshell? We just want to write to the stdout
> file not execute it.
> 
> Or am missing something.

Good eyes. I mistook those as quotes and not backticks.

-- Steve

[toc] | [prev] | [next] | [standalone]


#1682834 — Re: [PATCH 4/4] selftests: ftrace: Output only to console with "--logdir -"

FromMasami Hiramatsu <mhiramat@kernel.org>
Date2017-07-07 02:50 +0200
SubjectRe: [PATCH 4/4] selftests: ftrace: Output only to console with "--logdir -"
Message-ID<u0pD4-4A2-11@gated-at.bofh.it>
In reply to#1682417
On Thu, 6 Jul 2017 22:06:58 +0900
Stafford Horne <shorne@gmail.com> wrote:

> On Wed, Jul 05, 2017 at 12:25:06PM -0400, Steven Rostedt wrote:
> > On Tue,  4 Jul 2017 15:38:55 +0900
> > Masami Hiramatsu <mhiramat@kernel.org> wrote:
> > 
> > > +    local testlog=`mktemp $LOG_DIR/${testname}-log.XXXXXX`
> > > +  else
> > > +    local testlog=`/proc/self/fd/1`
> > 
> > cute trick.
> 
> Shouldn't this be:
> 
>    local testlog=/proc/self/fd/1
> 
> without the backticks and subshell? We just want to write to the stdout
> file not execute it.

Yeah, it was my mistake...

Thank you!

> 
> Or am missing something.
> 
> -Stafford


-- 
Masami Hiramatsu <mhiramat@kernel.org>

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web