Re: [PATCH v3] selftests: ftrace: Allow some tests to be run in a tracing instance
From: Masami Hiramatsu
Date: Sat Apr 22 2017 - 20:17:31 EST
On Sat, 22 Apr 2017 06:58:37 -0400
Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
> On Sat, 22 Apr 2017 17:41:49 +0900
> Masami Hiramatsu <mhiramat@xxxxxxxxxx> wrote:
>
> > On Fri, 21 Apr 2017 23:38:50 -0400
> > Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
> >
> > > From 4464dc867ead3ea14654165ad3ab68263aff7b17 Mon Sep 17 00:00:00 2001
> > > From: "Steven Rostedt (VMware)" <rostedt@xxxxxxxxxxx>
> > > Date: Thu, 20 Apr 2017 12:53:18 -0400
> > > Subject: [PATCH] selftests: ftrace: Allow some tests to be run in a tracing
> > > instance
> > >
> > > An tracing instance has several of the same capabilities as the top level
> > > instance, but may be implemented slightly different. Instead of just writing
> > > tests that duplicat the same test cases of the top level instance, allow a
> > > test to be written for both the top level as well as for an instance.
> > >
> > > If a test case can be run in both the top level as well as in an tracing
> > > instance directory, then it should add a tag "# flags: instance" in the
> > > header of the test file. Then after all tests have run, any test that has an
> > > instance flag set, will run again within a tracing instance.
> > >
> > > Cc: Shuah Khan <shuah@xxxxxxxxxx>
> > > Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
> > > Suggestions-from: Masami Hiramatsu <mhiramat@xxxxxxxxxx>
> > > Signed-off-by: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx>
> > > ---
> > > tools/testing/selftests/ftrace/ftracetest | 19 +++++++++++++++++++
> > > 1 file changed, 19 insertions(+)
> > >
> > > diff --git a/tools/testing/selftests/ftrace/ftracetest b/tools/testing/selftests/ftrace/ftracetest
> > > index a8631d9..3215a8d 100755
> > > --- a/tools/testing/selftests/ftrace/ftracetest
> > > +++ b/tools/testing/selftests/ftrace/ftracetest
> > > @@ -157,6 +157,10 @@ testcase() { # testfile
> > > prlog -n "[$CASENO]$desc"
> > > }
> > >
> > > +test_on_instance() { # testfile
> > > + grep -q "^#[ \t]*flags:.*instance" $1
> >
> > Oops, this needs '&> /dev/null' at the end to suppress its result.
>
> The -q should keep grep from outputting anything. It does on my end. Do
> you see something different?
Ah, sorry I missed -q option... OK, it is good!
>
> >
> > > +}
> > > +
> > > eval_result() { # sigval
> > > case $1 in
> > > $PASS)
> > > @@ -271,6 +275,21 @@ for t in $TEST_CASES; do
> > > run_test $t
> > > done
> > >
> > > +# Test on instance loop
> > > +FIRST_INSTANCE=0
> > > +for t in $TEST_CASES; do
> > > + test_on_instance $t || continue
> > > + if [ $FIRST_INSTANCE -eq 0 ]; then
> > > + FIRST_INSTANCE=1
> > > + echo "Running tests in a tracing instance:"
> > > + fi
> >
> > Ah, I see. This is important. And I would rather like to show
> > it on the description line of each test so that we can check
> > which test log is run in an instance. E.g. passing "(instance)"
> > message to run_test() and testcase() as the 2nd arg, and print
> > it in testlog and console?
>
> OK, I'll update to v4.
Thank you!
>
> Thanks,
>
> -- Steve
>
> >
> > Thank you,
> >
> > > + 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
> > > +
> > > prlog ""
> > > prlog "# of passed: " `echo $PASSED_CASES | wc -w`
> > > prlog "# of failed: " `echo $FAILED_CASES | wc -w`
> > > --
> > > 2.9.3
> > >
> >
> >
>
--
Masami Hiramatsu <mhiramat@xxxxxxxxxx>