On Sat, 22 Apr 2017 08:00:36 +0900 Masami Hiramatsu <mhira...@kernel.org> wrote:
> > BTW, this seems too complecated (with many similar variables). I'm use to complicated ;-) > I think we just need following patch, if we run the tests which > have "instance" flag twice on top-level and an instance. > (If you'd like to run those tests only on instance, we need > just one more line in the main loop ;-) ) > > ----------- > diff --git a/tools/testing/selftests/ftrace/ftracetest > b/tools/testing/selftests > index 52e3c4d..bdb10e6 100755 > --- a/tools/testing/selftests/ftrace/ftracetest > +++ b/tools/testing/selftests/ftrace/ftracetest > @@ -152,6 +152,10 @@ testcase() { # testfile > prlog -n "[$CASENO]$desc" > } > > +test_on_instance() { # testfile > + grep "^#[ \t]*flag:.*instance" $1 > +} > + > eval_result() { # sigval > case $1 in > $PASS) > @@ -266,6 +270,16 @@ for t in $TEST_CASES; do > run_test $t > done > > +# Test on instance loop > +for t in $TEST_CASES; do > + test_on_instance $t || continue > + SAVED_TRACING_DIR=$TRACING_DIR > + export TRACING_DIR=`mktemp -d $TRACING_DIR/instances/ftracetest.XXXXXX` > + run_test $t > + rmdir $TRACING_DIR > + TRACING_DIR=$SAVED_TRACING_DIR > +done I have a slight modification to this. Will send soon. -- Steve > + > prlog "" > prlog "# of passed: " `echo $PASSED_CASES | wc -w` > prlog "# of failed: " `echo $FAILED_CASES | wc -w` > ----------- > > Would this work for you? > > Thank you, > > > + > > eval_result() { # sigval > > case $1 in > > $PASS) > > @@ -233,18 +242,26 @@ exit_xfail () { > > } > > trap 'SIG_RESULT=$XFAIL' $SIG_XFAIL > > > > +INSTANCE_DIR="." > > __run_test() { # testfile > > # setup PID and PPID, $$ is not updated. > > (cd $TRACING_DIR; read PID _ < /proc/self/stat; set -e; set -x; > > initialize_ftrace; . $1) > > [ $? -ne 0 ] && kill -s $SIG_FAIL $SIG_PID > > } > > > > +TEST_INSTANCES=0 > > + > > # Run one test case > > run_test() { # testfile > > local testname=`basename $1` > > local testlog=`mktemp $LOG_DIR/${testname}-log.XXXXXX` > > export TMPDIR=`mktemp -d /tmp/ftracetest-dir.XXXXXX` > > testcase $1 > > + local SAVE_TRACING_DIR=$TRACING_DIR > > + if [ $TEST_INSTANCES -eq 1 ]; then > > + TRACING_DIR=$TRACING_DIR/instances/${testname}_test_$$ > > + mkdir $TRACING_DIR > > + fi > > echo "execute: "$1 > $testlog > > SIG_RESULT=0 > > if [ $VERBOSE -ge 2 ]; then > > @@ -260,17 +277,40 @@ run_test() { # testfile > > [ $VERBOSE -ge 1 ] && catlog $testlog > > TOTAL_RESULT=1 > > fi > > + if [ $TEST_INSTANCES -eq 1 ]; then > > + rmdir $TRACING_DIR > > + fi > > + TRACING_DIR=$SAVE_TRACING_DIR > > rm -rf $TMPDIR > > } > > > > # load in the helper functions > > . $TEST_DIR/functions > > > > +RUN_INSTANCES=0 > > + > > # Main loop > > for t in $TEST_CASES; do > > + testinstance $t > > + if [ $INSTANCE -eq 1 ]; then > > + RUN_INSTANCES=1 > > + fi > > run_test $t > > done > > > > +TEST_INSTANCES=1 > > + > > +if [ $RUN_INSTANCES -eq 1 ]; then > > + echo "Running tests in a tracing instance:" > > + for t in $TEST_CASES; do > > + testinstance $t > > + if [ $INSTANCE -eq 0 ]; then > > + continue > > + fi > > + run_test $t > > + done > > +fi > > + > > prlog "" > > prlog "# of passed: " `echo $PASSED_CASES | wc -w` > > prlog "# of failed: " `echo $FAILED_CASES | wc -w` > > -- > > 2.9.3 > > > >