Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ftracetest: Fix hist unsupported result in hist selftests

When histograms are not configured in the kernel, the ftracetest histogram
selftests should return "unsupported" and not "Failed". To detect this, the
test scripts have:

FEATURE=`grep hist events/sched/sched_process_fork/trigger`
if [ -z "$FEATURE" ]; then
echo "hist trigger is not supported"
exit_unsupported
fi

The problem is that '-e' is in effect and any error will cause the program
to terminate. The grep for 'hist' fails, because it is not compiled it (thus
unsupported), but because grep has an error code for failing to find the
string, it causes the program to terminate, and is marked as a failed test.

Namhyung Kim recommended to test for the "hist" file located in
events/sched/sched_process_fork/hist instead, as it is more inline with the
other checks. As the hist file is only created if the histogram feature is
enabled, that is a valid check.

Link: http://lkml.kernel.org/r/20160523151538.4ea9ce0c@gandalf.local.home

Suggested-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
Fixes: 76929ab51f0ee ("kselftests/ftrace: Add hist trigger testcases")
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>

+12 -15
+4 -5
tools/testing/selftests/ftrace/test.d/trigger/trigger-hist-mod.tc
··· 23 23 exit_unsupported 24 24 fi 25 25 26 - reset_tracer 27 - do_reset 28 - 29 - FEATURE=`grep hist events/sched/sched_process_fork/trigger` 30 - if [ -z "$FEATURE" ]; then 26 + if [ ! -f events/sched/sched_process_fork/hist ]; then 31 27 echo "hist trigger is not supported" 32 28 exit_unsupported 33 29 fi 30 + 31 + reset_tracer 32 + do_reset 34 33 35 34 echo "Test histogram with execname modifier" 36 35
+4 -5
tools/testing/selftests/ftrace/test.d/trigger/trigger-hist.tc
··· 23 23 exit_unsupported 24 24 fi 25 25 26 - reset_tracer 27 - do_reset 28 - 29 - FEATURE=`grep hist events/sched/sched_process_fork/trigger` 30 - if [ -z "$FEATURE" ]; then 26 + if [ ! -f events/sched/sched_process_fork/hist ]; then 31 27 echo "hist trigger is not supported" 32 28 exit_unsupported 33 29 fi 30 + 31 + reset_tracer 32 + do_reset 34 33 35 34 echo "Test histogram basic tigger" 36 35
+4 -5
tools/testing/selftests/ftrace/test.d/trigger/trigger-multihist.tc
··· 23 23 exit_unsupported 24 24 fi 25 25 26 - reset_tracer 27 - do_reset 28 - 29 - FEATURE=`grep hist events/sched/sched_process_fork/trigger` 30 - if [ -z "$FEATURE" ]; then 26 + if [ ! -f events/sched/sched_process_fork/hist ]; then 31 27 echo "hist trigger is not supported" 32 28 exit_unsupported 33 29 fi 30 + 31 + reset_tracer 32 + do_reset 34 33 35 34 reset_trigger 36 35