Commit 97bece60 authored by Masami Hiramatsu's avatar Masami Hiramatsu Committed by Shuah Khan

selftests: ftrace: Output only to console with "--logdir -"

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: default avatarMasami Hiramatsu <mhiramat@kernel.org>
Acked-by: default avatarSteven Rostedt (VMware) <srostedt@goodmis.org>
Signed-off-by: default avatarShuah Khan <shuahkh@osg.samsung.com>
parent dab24fb1
...@@ -19,6 +19,7 @@ echo " -vvv Alias of -v -v -v (Show all commands immediately)" ...@@ -19,6 +19,7 @@ echo " -vvv Alias of -v -v -v (Show all commands immediately)"
echo " --fail-unsupported Treat UNSUPPORTED as a failure" echo " --fail-unsupported Treat UNSUPPORTED as a failure"
echo " -d|--debug Debug mode (trace all shell commands)" echo " -d|--debug Debug mode (trace all shell commands)"
echo " -l|--logdir <dir> Save logs on the <dir>" echo " -l|--logdir <dir> Save logs on the <dir>"
echo " If <dir> is -, all logs output in console only"
exit $1 exit $1
} }
...@@ -127,14 +128,20 @@ if [ -z "$TRACING_DIR" -o ! -d "$TRACING_DIR" ]; then ...@@ -127,14 +128,20 @@ if [ -z "$TRACING_DIR" -o ! -d "$TRACING_DIR" ]; then
fi fi
# Preparing logs # Preparing logs
LOG_FILE=$LOG_DIR/ftracetest.log if [ "x$LOG_DIR" = "x-" ]; then
mkdir -p $LOG_DIR || errexit "Failed to make a log directory: $LOG_DIR" LOG_FILE=
date > $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 prlog() { # messages
echo "$@" | tee -a $LOG_FILE [ -z "$LOG_FILE" ] && echo "$@" || echo "$@" | tee -a $LOG_FILE
} }
catlog() { #file catlog() { #file
cat $1 | tee -a $LOG_FILE [ -z "$LOG_FILE" ] && cat $1 || cat $1 | tee -a $LOG_FILE
} }
prlog "=== Ftrace unit tests ===" prlog "=== Ftrace unit tests ==="
...@@ -255,12 +262,18 @@ __run_test() { # testfile ...@@ -255,12 +262,18 @@ __run_test() { # testfile
# Run one test case # Run one test case
run_test() { # testfile run_test() { # testfile
local testname=`basename $1` local testname=`basename $1`
if [ ! -z "$LOG_FILE" ] ; then
local testlog=`mktemp $LOG_DIR/${testname}-log.XXXXXX` local testlog=`mktemp $LOG_DIR/${testname}-log.XXXXXX`
else
local testlog=/proc/self/fd/1
fi
export TMPDIR=`mktemp -d /tmp/ftracetest-dir.XXXXXX` export TMPDIR=`mktemp -d /tmp/ftracetest-dir.XXXXXX`
testcase $1 testcase $1
echo "execute$INSTANCE: "$1 > $testlog echo "execute$INSTANCE: "$1 > $testlog
SIG_RESULT=0 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 __run_test $1 | tee -a $testlog 2>&1
elif [ $VERBOSE -eq 2 ]; then elif [ $VERBOSE -eq 2 ]; then
__run_test $1 2>> $testlog | tee -a $testlog __run_test $1 2>> $testlog | tee -a $testlog
...@@ -270,7 +283,7 @@ run_test() { # testfile ...@@ -270,7 +283,7 @@ run_test() { # testfile
eval_result $SIG_RESULT eval_result $SIG_RESULT
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
# Remove test log if the test was done as it was expected. # Remove test log if the test was done as it was expected.
[ $KEEP_LOG -eq 0 ] && rm $testlog [ $KEEP_LOG -eq 0 -a ! -z "$LOG_FILE" ] && rm $testlog
else else
[ $VERBOSE -eq 1 -o $VERBOSE -eq 2 ] && catlog $testlog [ $VERBOSE -eq 1 -o $VERBOSE -eq 2 ] && catlog $testlog
TOTAL_RESULT=1 TOTAL_RESULT=1
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment