On Thu, 10 Jul 2025 13:01:34 +0000 Tengda Wu <wuten...@huaweicloud.com> wrote:
> > Fixes: 1a4ea83a6e67 ("selftests/ftrace: Limit length in subsystem-enable > tests") > Signed-off-by: Tengda Wu <wuten...@huaweicloud.com> > --- > .../selftests/ftrace/test.d/event/subsystem-enable.tc | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc > b/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc > index b7c8f29c09a9..3a28adc7b727 100644 > --- a/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc > +++ b/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc > @@ -19,8 +19,8 @@ echo 'sched:*' > set_event > yield > > count=`head -n 100 trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l` > -if [ $count -lt 3 ]; then > - fail "at least fork, exec and exit events should be recorded" > +if [ $count -eq 0 ]; then > + fail "none of scheduler events are recorded" > fi > > do_reset > @@ -30,8 +30,8 @@ echo 1 > events/sched/enable > yield > > count=`head -n 100 trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l` > -if [ $count -lt 3 ]; then > - fail "at least fork, exec and exit events should be recorded" > +if [ $count -eq 0 ]; then > + fail "none of scheduler events are recorded" So if there's a bug that causes the system enable to only enable a single event, this will no longer catch it? I rather not let the slide. Can you test this to see if this works for you? -- Steve diff --git a/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc b/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc index b7c8f29c09a9..46a9e6d92730 100644 --- a/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc +++ b/tools/testing/selftests/ftrace/test.d/event/subsystem-enable.tc @@ -14,11 +14,32 @@ fail() { #msg exit_fail } +check_unique() { + cat trace_pipe | grep -v '^#' | awk ' + BEGIN { cnt = 0; } + { + for (i = 0; i < cnt; i++) { + if (event[i] == $5) { + break; + } + } + if (i == cnt) { + event[cnt++] = $5; + if (cnt > 2) { + exit; + } + } + } + END { + printf "%d", cnt; + }' +} + echo 'sched:*' > set_event yield -count=`head -n 100 trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l` +count=`check_unique` if [ $count -lt 3 ]; then fail "at least fork, exec and exit events should be recorded" fi @@ -29,7 +50,7 @@ echo 1 > events/sched/enable yield -count=`head -n 100 trace | grep -v ^# | awk '{ print $5 }' | sort -u | wc -l` +count=`check_unique` if [ $count -lt 3 ]; then fail "at least fork, exec and exit events should be recorded" fi