mbox series

[0/7] selftsts/ftrace: Add requires list for each test case

Message ID 159102252279.31199.12855129586058455119.stgit@devnote2 (mailing list archive)
Headers show
Series selftsts/ftrace: Add requires list for each test case | expand

Message

Masami Hiramatsu (Google) June 1, 2020, 2:42 p.m. UTC
Hi,

Here is a series for adding "requires:" list for simplifying and
unifying requirement checks for each test case.
This series also includes the description line fix and
unresolved -> unsupported change ([1/7] and [2/7]).

Currently, we have many similar requirement checker to find
unconfigured or unsupported (in older kernels) feature in
each test case. I think it is a good time to unify those similar
checks.

As same as "description:" or "flags:" line, this series introduces
new "requires:" line, and convert current checking code intor the
"requires:" line.
This requires line gives some good effects, not only simplyfies
the code, but also unifies the reason message, and because it checks
the requirements before running the testc ase, it skips unneeded
ftrace initialization.

The requires line supports following checks
 - tracefs interface check: Check whether the given file or directory
   in the tracefs. (No suffix) [3/7],[4/7],[5/7]
 - available tracer check: Check whether the given tracer is available
   (":tracer" suffix) [6/7]
 - README feature check: Check whether the given string is in the
   README (":README" suffix) [7/7]

Note that since the requires line returns UNSUPPORTED error,
the requirements must be one of ftrace feature, but not the
user-space environmental requirement. If there is some issue
in user-space (e.g. lack of the command, modules, etc) it must
report UNRESOLVED error.

Since this series depends on following 2 commits,

commit 619ee76f5c9f ("selftests/ftrace: Return unsupported if no
 error_log file") on Shuah's Kselftest tree
commit bea24f766efc ("selftests/ftrace: Distinguish between hist
 and synthetic event checks") on Steven's Tracing tree

This can be applied on the tree which merged both of them.
Also, you can get the series from the following.

 git://git.kernel.org/pub/scm/linux/kernel/git/mhiramat/linux.git ftracetest-requires-v1


Thank you,

---

Masami Hiramatsu (7):
      selftests/ftrace: Allow ":" in description
      selftests/ftrace: Return unsupported for the unconfigured features
      selftests/ftrace: Add "requires:" list support
      selftests/ftrace: Convert required interface checks into requires list
      selftests/ftrace: Convert check_filter_file() with requires list
      selftests/ftrace: Support ":tracer" suffix for requires
      selftests/ftrace: Support ":README" suffix for requires


 tools/testing/selftests/ftrace/ftracetest          |   11 ++++++-
 .../selftests/ftrace/test.d/00basic/snapshot.tc    |    3 +-
 .../selftests/ftrace/test.d/00basic/trace_pipe.tc  |    3 +-
 .../ftrace/test.d/direct/kprobe-direct.tc          |    6 +---
 .../ftrace/test.d/dynevent/add_remove_kprobe.tc    |    6 +---
 .../ftrace/test.d/dynevent/add_remove_synth.tc     |    5 +--
 .../ftrace/test.d/dynevent/clear_select_events.tc  |   11 +------
 .../ftrace/test.d/dynevent/generic_clear_event.tc  |    8 +----
 .../selftests/ftrace/test.d/event/event-enable.tc  |    6 +---
 .../selftests/ftrace/test.d/event/event-no-pid.tc  |   11 +------
 .../selftests/ftrace/test.d/event/event-pid.tc     |   11 +------
 .../ftrace/test.d/event/subsystem-enable.tc        |    6 +---
 .../ftrace/test.d/event/toplevel-enable.tc         |    6 +---
 .../ftrace/test.d/ftrace/fgraph-filter-stack.tc    |   14 +--------
 .../ftrace/test.d/ftrace/fgraph-filter.tc          |    8 +----
 .../ftrace/test.d/ftrace/func-filter-glob.tc       |    8 +----
 .../test.d/ftrace/func-filter-notrace-pid.tc       |   13 +-------
 .../ftrace/test.d/ftrace/func-filter-pid.tc        |   13 +-------
 .../ftrace/test.d/ftrace/func-filter-stacktrace.tc |    3 +-
 .../selftests/ftrace/test.d/ftrace/func_cpumask.tc |    6 +---
 .../ftrace/test.d/ftrace/func_event_triggers.tc    |    7 ++---
 .../ftrace/test.d/ftrace/func_mod_trace.tc         |    3 +-
 .../ftrace/test.d/ftrace/func_profile_stat.tc      |    3 +-
 .../ftrace/test.d/ftrace/func_profiler.tc          |   12 +-------
 .../ftrace/test.d/ftrace/func_set_ftrace_file.tc   |    6 ++--
 .../ftrace/test.d/ftrace/func_stack_tracer.tc      |    8 +----
 .../test.d/ftrace/func_traceonoff_triggers.tc      |    6 ++--
 .../ftrace/test.d/ftrace/tracing-error-log.tc      |   12 ++------
 tools/testing/selftests/ftrace/test.d/functions    |   28 ++++++++++++++----
 .../ftrace/test.d/instances/instance-event.tc      |    6 +---
 .../selftests/ftrace/test.d/instances/instance.tc  |    6 +---
 .../ftrace/test.d/kprobe/add_and_remove.tc         |    3 +-
 .../selftests/ftrace/test.d/kprobe/busy_check.tc   |    3 +-
 .../selftests/ftrace/test.d/kprobe/kprobe_args.tc  |    3 +-
 .../ftrace/test.d/kprobe/kprobe_args_comm.tc       |    3 +-
 .../ftrace/test.d/kprobe/kprobe_args_string.tc     |    3 +-
 .../ftrace/test.d/kprobe/kprobe_args_symbol.tc     |    3 +-
 .../ftrace/test.d/kprobe/kprobe_args_syntax.tc     |    5 +--
 .../ftrace/test.d/kprobe/kprobe_args_type.tc       |    5 +--
 .../ftrace/test.d/kprobe/kprobe_args_user.tc       |    5 +--
 .../ftrace/test.d/kprobe/kprobe_eventname.tc       |    3 +-
 .../ftrace/test.d/kprobe/kprobe_ftrace.tc          |    6 +---
 .../ftrace/test.d/kprobe/kprobe_module.tc          |    3 +-
 .../ftrace/test.d/kprobe/kprobe_multiprobe.tc      |    5 +--
 .../ftrace/test.d/kprobe/kprobe_syntax_errors.tc   |    5 +--
 .../ftrace/test.d/kprobe/kretprobe_args.tc         |    3 +-
 .../ftrace/test.d/kprobe/kretprobe_maxactive.tc    |    4 +--
 .../ftrace/test.d/kprobe/multiple_kprobes.tc       |    3 +-
 .../selftests/ftrace/test.d/kprobe/probepoint.tc   |    3 +-
 .../selftests/ftrace/test.d/kprobe/profile.tc      |    3 +-
 .../ftrace/test.d/kprobe/uprobe_syntax_errors.tc   |    5 +--
 .../ftrace/test.d/preemptirq/irqsoff_tracer.tc     |    4 +--
 tools/testing/selftests/ftrace/test.d/template     |    4 +++
 .../selftests/ftrace/test.d/tracer/wakeup.tc       |    6 +---
 .../selftests/ftrace/test.d/tracer/wakeup_rt.tc    |    6 +---
 .../inter-event/trigger-action-hist-xfail.tc       |   13 +-------
 .../inter-event/trigger-field-variable-support.tc  |   16 +---------
 .../trigger-inter-event-combined-hist.tc           |   16 +---------
 .../inter-event/trigger-multi-actions-accept.tc    |   16 +---------
 .../inter-event/trigger-onchange-action-hist.tc    |    8 +----
 .../inter-event/trigger-onmatch-action-hist.tc     |   16 +---------
 .../trigger-onmatch-onmax-action-hist.tc           |   16 +---------
 .../inter-event/trigger-onmax-action-hist.tc       |   16 +---------
 .../inter-event/trigger-snapshot-action-hist.tc    |   20 +------------
 .../trigger-synthetic-event-createremove.tc        |   11 +------
 .../inter-event/trigger-synthetic-event-syntax.tc  |   11 +------
 .../inter-event/trigger-trace-action-hist.tc       |   18 +-----------
 .../ftrace/test.d/trigger/trigger-eventonoff.tc    |   11 +------
 .../ftrace/test.d/trigger/trigger-filter.tc        |   11 +------
 .../ftrace/test.d/trigger/trigger-hist-mod.tc      |   16 +---------
 .../test.d/trigger/trigger-hist-syntax-errors.tc   |   18 +-----------
 .../ftrace/test.d/trigger/trigger-hist.tc          |   16 +---------
 .../ftrace/test.d/trigger/trigger-multihist.tc     |   16 +---------
 .../ftrace/test.d/trigger/trigger-snapshot.tc      |   16 +---------
 .../ftrace/test.d/trigger/trigger-stacktrace.tc    |   11 +------
 .../test.d/trigger/trigger-trace-marker-hist.tc    |   21 +-------------
 .../trigger/trigger-trace-marker-snapshot.tc       |   21 +-------------
 .../trigger-trace-marker-synthetic-kernel.tc       |   31 +-------------------
 .../trigger/trigger-trace-marker-synthetic.tc      |   26 +----------------
 .../ftrace/test.d/trigger/trigger-traceonoff.tc    |   11 +------
 80 files changed, 120 insertions(+), 633 deletions(-)

--
Masami Hiramatsu (Linaro) <mhiramat@kernel.org>

Comments

Zanussi, Tom June 1, 2020, 7:56 p.m. UTC | #1
Hi Masami,

On 6/1/2020 9:42 AM, Masami Hiramatsu wrote:
> Hi,
> 
> Here is a series for adding "requires:" list for simplifying and
> unifying requirement checks for each test case.
> This series also includes the description line fix and
> unresolved -> unsupported change ([1/7] and [2/7]).
> 
> Currently, we have many similar requirement checker to find
> unconfigured or unsupported (in older kernels) feature in
> each test case. I think it is a good time to unify those similar
> checks.
> 
> As same as "description:" or "flags:" line, this series introduces
> new "requires:" line, and convert current checking code intor the
> "requires:" line.
> This requires line gives some good effects, not only simplyfies
> the code, but also unifies the reason message, and because it checks
> the requirements before running the testc ase, it skips unneeded
> ftrace initialization.
> 
> The requires line supports following checks
>   - tracefs interface check: Check whether the given file or directory
>     in the tracefs. (No suffix) [3/7],[4/7],[5/7]
>   - available tracer check: Check whether the given tracer is available
>     (":tracer" suffix) [6/7]
>   - README feature check: Check whether the given string is in the
>     README (":README" suffix) [7/7]
> 
> Note that since the requires line returns UNSUPPORTED error,
> the requirements must be one of ftrace feature, but not the
> user-space environmental requirement. If there is some issue
> in user-space (e.g. lack of the command, modules, etc) it must
> report UNRESOLVED error.
> 
> Since this series depends on following 2 commits,
> 
> commit 619ee76f5c9f ("selftests/ftrace: Return unsupported if no
>   error_log file") on Shuah's Kselftest tree
> commit bea24f766efc ("selftests/ftrace: Distinguish between hist
>   and synthetic event checks") on Steven's Tracing tree
> 
> This can be applied on the tree which merged both of them.
> Also, you can get the series from the following.
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/mhiramat/linux.git ftracetest-requires-v1
> 
> 
> Thank you,

Very nice, thanks for doing this.

Reviewed-by: Tom Zanussi <zanussi@kernel.org>


> 
> ---
> 
> Masami Hiramatsu (7):
>        selftests/ftrace: Allow ":" in description
>        selftests/ftrace: Return unsupported for the unconfigured features
>        selftests/ftrace: Add "requires:" list support
>        selftests/ftrace: Convert required interface checks into requires list
>        selftests/ftrace: Convert check_filter_file() with requires list
>        selftests/ftrace: Support ":tracer" suffix for requires
>        selftests/ftrace: Support ":README" suffix for requires
> 
> 
>   tools/testing/selftests/ftrace/ftracetest          |   11 ++++++-
>   .../selftests/ftrace/test.d/00basic/snapshot.tc    |    3 +-
>   .../selftests/ftrace/test.d/00basic/trace_pipe.tc  |    3 +-
>   .../ftrace/test.d/direct/kprobe-direct.tc          |    6 +---
>   .../ftrace/test.d/dynevent/add_remove_kprobe.tc    |    6 +---
>   .../ftrace/test.d/dynevent/add_remove_synth.tc     |    5 +--
>   .../ftrace/test.d/dynevent/clear_select_events.tc  |   11 +------
>   .../ftrace/test.d/dynevent/generic_clear_event.tc  |    8 +----
>   .../selftests/ftrace/test.d/event/event-enable.tc  |    6 +---
>   .../selftests/ftrace/test.d/event/event-no-pid.tc  |   11 +------
>   .../selftests/ftrace/test.d/event/event-pid.tc     |   11 +------
>   .../ftrace/test.d/event/subsystem-enable.tc        |    6 +---
>   .../ftrace/test.d/event/toplevel-enable.tc         |    6 +---
>   .../ftrace/test.d/ftrace/fgraph-filter-stack.tc    |   14 +--------
>   .../ftrace/test.d/ftrace/fgraph-filter.tc          |    8 +----
>   .../ftrace/test.d/ftrace/func-filter-glob.tc       |    8 +----
>   .../test.d/ftrace/func-filter-notrace-pid.tc       |   13 +-------
>   .../ftrace/test.d/ftrace/func-filter-pid.tc        |   13 +-------
>   .../ftrace/test.d/ftrace/func-filter-stacktrace.tc |    3 +-
>   .../selftests/ftrace/test.d/ftrace/func_cpumask.tc |    6 +---
>   .../ftrace/test.d/ftrace/func_event_triggers.tc    |    7 ++---
>   .../ftrace/test.d/ftrace/func_mod_trace.tc         |    3 +-
>   .../ftrace/test.d/ftrace/func_profile_stat.tc      |    3 +-
>   .../ftrace/test.d/ftrace/func_profiler.tc          |   12 +-------
>   .../ftrace/test.d/ftrace/func_set_ftrace_file.tc   |    6 ++--
>   .../ftrace/test.d/ftrace/func_stack_tracer.tc      |    8 +----
>   .../test.d/ftrace/func_traceonoff_triggers.tc      |    6 ++--
>   .../ftrace/test.d/ftrace/tracing-error-log.tc      |   12 ++------
>   tools/testing/selftests/ftrace/test.d/functions    |   28 ++++++++++++++----
>   .../ftrace/test.d/instances/instance-event.tc      |    6 +---
>   .../selftests/ftrace/test.d/instances/instance.tc  |    6 +---
>   .../ftrace/test.d/kprobe/add_and_remove.tc         |    3 +-
>   .../selftests/ftrace/test.d/kprobe/busy_check.tc   |    3 +-
>   .../selftests/ftrace/test.d/kprobe/kprobe_args.tc  |    3 +-
>   .../ftrace/test.d/kprobe/kprobe_args_comm.tc       |    3 +-
>   .../ftrace/test.d/kprobe/kprobe_args_string.tc     |    3 +-
>   .../ftrace/test.d/kprobe/kprobe_args_symbol.tc     |    3 +-
>   .../ftrace/test.d/kprobe/kprobe_args_syntax.tc     |    5 +--
>   .../ftrace/test.d/kprobe/kprobe_args_type.tc       |    5 +--
>   .../ftrace/test.d/kprobe/kprobe_args_user.tc       |    5 +--
>   .../ftrace/test.d/kprobe/kprobe_eventname.tc       |    3 +-
>   .../ftrace/test.d/kprobe/kprobe_ftrace.tc          |    6 +---
>   .../ftrace/test.d/kprobe/kprobe_module.tc          |    3 +-
>   .../ftrace/test.d/kprobe/kprobe_multiprobe.tc      |    5 +--
>   .../ftrace/test.d/kprobe/kprobe_syntax_errors.tc   |    5 +--
>   .../ftrace/test.d/kprobe/kretprobe_args.tc         |    3 +-
>   .../ftrace/test.d/kprobe/kretprobe_maxactive.tc    |    4 +--
>   .../ftrace/test.d/kprobe/multiple_kprobes.tc       |    3 +-
>   .../selftests/ftrace/test.d/kprobe/probepoint.tc   |    3 +-
>   .../selftests/ftrace/test.d/kprobe/profile.tc      |    3 +-
>   .../ftrace/test.d/kprobe/uprobe_syntax_errors.tc   |    5 +--
>   .../ftrace/test.d/preemptirq/irqsoff_tracer.tc     |    4 +--
>   tools/testing/selftests/ftrace/test.d/template     |    4 +++
>   .../selftests/ftrace/test.d/tracer/wakeup.tc       |    6 +---
>   .../selftests/ftrace/test.d/tracer/wakeup_rt.tc    |    6 +---
>   .../inter-event/trigger-action-hist-xfail.tc       |   13 +-------
>   .../inter-event/trigger-field-variable-support.tc  |   16 +---------
>   .../trigger-inter-event-combined-hist.tc           |   16 +---------
>   .../inter-event/trigger-multi-actions-accept.tc    |   16 +---------
>   .../inter-event/trigger-onchange-action-hist.tc    |    8 +----
>   .../inter-event/trigger-onmatch-action-hist.tc     |   16 +---------
>   .../trigger-onmatch-onmax-action-hist.tc           |   16 +---------
>   .../inter-event/trigger-onmax-action-hist.tc       |   16 +---------
>   .../inter-event/trigger-snapshot-action-hist.tc    |   20 +------------
>   .../trigger-synthetic-event-createremove.tc        |   11 +------
>   .../inter-event/trigger-synthetic-event-syntax.tc  |   11 +------
>   .../inter-event/trigger-trace-action-hist.tc       |   18 +-----------
>   .../ftrace/test.d/trigger/trigger-eventonoff.tc    |   11 +------
>   .../ftrace/test.d/trigger/trigger-filter.tc        |   11 +------
>   .../ftrace/test.d/trigger/trigger-hist-mod.tc      |   16 +---------
>   .../test.d/trigger/trigger-hist-syntax-errors.tc   |   18 +-----------
>   .../ftrace/test.d/trigger/trigger-hist.tc          |   16 +---------
>   .../ftrace/test.d/trigger/trigger-multihist.tc     |   16 +---------
>   .../ftrace/test.d/trigger/trigger-snapshot.tc      |   16 +---------
>   .../ftrace/test.d/trigger/trigger-stacktrace.tc    |   11 +------
>   .../test.d/trigger/trigger-trace-marker-hist.tc    |   21 +-------------
>   .../trigger/trigger-trace-marker-snapshot.tc       |   21 +-------------
>   .../trigger-trace-marker-synthetic-kernel.tc       |   31 +-------------------
>   .../trigger/trigger-trace-marker-synthetic.tc      |   26 +----------------
>   .../ftrace/test.d/trigger/trigger-traceonoff.tc    |   11 +------
>   80 files changed, 120 insertions(+), 633 deletions(-)
> 
> --
> Masami Hiramatsu (Linaro) <mhiramat@kernel.org>
>