Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752021AbdGEQZL (ORCPT ); Wed, 5 Jul 2017 12:25:11 -0400 Received: from mail.kernel.org ([198.145.29.99]:57520 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751816AbdGEQZJ (ORCPT ); Wed, 5 Jul 2017 12:25:09 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AE3A322B55 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=goodmis.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=rostedt@goodmis.org Date: Wed, 5 Jul 2017 12:25:06 -0400 From: Steven Rostedt To: Masami Hiramatsu Cc: linux-kselftest@vger.kernel.org, shuah@kernel.org, Ingo Molnar , linux-kernel@vger.kernel.org, naresh.kamboju@linaro.org Subject: Re: [PATCH 4/4] selftests: ftrace: Output only to console with "--logdir -" Message-ID: <20170705122506.6235765e@gandalf.local.home> In-Reply-To: <149915032497.18583.11626955093827357641.stgit@devbox> References: <149915006959.18583.13997841764160473197.stgit@devbox> <149915032497.18583.11626955093827357641.stgit@devbox> X-Mailer: Claws Mail 3.14.0 (GTK+ 2.24.31; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3194 Lines: 99 On Tue, 4 Jul 2017 15:38:55 +0900 Masami Hiramatsu 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 > --- > 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 Save logs on the " > +echo " If 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