mirror of https://gitee.com/openkylin/linux.git
selftests/ftrace: Support ":README" suffix for requires
Add ":README" suffix support for the requires list, so that the testcase can list up the required string for README file to the requires list. Note that the required string is treated as a fixed string, instead of regular expression. Also, the testcase can specify a string containing spaces with quotes. E.g. # requires: "place: [<module>:]<symbol>":README Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org> Reviewed-by: Tom Zanussi <zanussi@kernel.org> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
This commit is contained in:
parent
305c8388fd
commit
1b8eec510b
|
@ -269,7 +269,8 @@ testcase() { # testfile
|
|||
|
||||
checkreq() { # testfile
|
||||
requires=`grep "^#[ \t]*requires:" $1 | cut -f2- -d:`
|
||||
check_requires $requires
|
||||
# Use eval to pass quoted-patterns correctly.
|
||||
eval check_requires "$requires"
|
||||
}
|
||||
|
||||
test_on_instance() { # testfile
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Generic dynamic event - add/remove kprobe events
|
||||
# requires: dynamic_events
|
||||
|
||||
grep -q "place: \[<module>:\]<symbol>" README || exit_unsupported
|
||||
grep -q "place (kretprobe): \[<module>:\]<symbol>" README || exit_unsupported
|
||||
# requires: dynamic_events "place: [<module>:]<symbol>":README "place (kretprobe): [<module>:]<symbol>":README
|
||||
|
||||
echo 0 > events/enable
|
||||
echo > dynamic_events
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Generic dynamic event - add/remove synthetic events
|
||||
# requires: dynamic_events
|
||||
|
||||
grep -q "s:\[synthetic/\]" README || exit_unsupported
|
||||
# requires: dynamic_events "s:[synthetic/]":README
|
||||
|
||||
echo 0 > events/enable
|
||||
echo > dynamic_events
|
||||
|
|
|
@ -1,12 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Generic dynamic event - selective clear (compatibility)
|
||||
# requires: dynamic_events kprobe_events synthetic_events
|
||||
|
||||
grep -q "place: \[<module>:\]<symbol>" README || exit_unsupported
|
||||
grep -q "place (kretprobe): \[<module>:\]<symbol>" README || exit_unsupported
|
||||
|
||||
grep -q "s:\[synthetic/\]" README || exit_unsupported
|
||||
# requires: dynamic_events kprobe_events synthetic_events "place: [<module>:]<symbol>":README "place (kretprobe): [<module>:]<symbol>":README "s:[synthetic/]":README
|
||||
|
||||
echo 0 > events/enable
|
||||
echo > dynamic_events
|
||||
|
|
|
@ -1,12 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Generic dynamic event - generic clear event
|
||||
# requires: dynamic_events
|
||||
|
||||
grep -q "place: \[<module>:\]<symbol>" README || exit_unsupported
|
||||
grep -q "place (kretprobe): \[<module>:\]<symbol>" README || exit_unsupported
|
||||
|
||||
grep -q "s:\[synthetic/\]" README || exit_unsupported
|
||||
# requires: dynamic_events "place: [<module>:]<symbol>":README "place (kretprobe): [<module>:]<symbol>":README "s:[synthetic/]":README
|
||||
|
||||
echo 0 > events/enable
|
||||
echo > dynamic_events
|
||||
|
|
|
@ -107,13 +107,19 @@ initialize_ftrace() { # Reset ftrace to initial-state
|
|||
}
|
||||
|
||||
check_requires() { # Check required files and tracers
|
||||
for i in $* ; do
|
||||
for i in "$@" ; do
|
||||
r=${i%:README}
|
||||
t=${i%:tracer}
|
||||
if [ $t != $i ]; then
|
||||
if ! grep -wq $t available_tracers ; then
|
||||
echo "Required tracer $t is not configured."
|
||||
exit_unsupported
|
||||
fi
|
||||
elif [ $r != $i ]; then
|
||||
if ! grep -Fq "$r" README ; then
|
||||
echo "Required feature pattern \"$r\" is not in README."
|
||||
exit_unsupported
|
||||
fi
|
||||
elif [ ! -e $i ]; then
|
||||
echo "Required feature interface $i doesn't exist."
|
||||
exit_unsupported
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Kprobe event argument syntax
|
||||
# requires: kprobe_events
|
||||
|
||||
grep "x8/16/32/64" README > /dev/null || exit_unsupported # version issue
|
||||
# requires: kprobe_events "x8/16/32/64":README
|
||||
|
||||
PROBEFUNC="vfs_read"
|
||||
GOODREG=
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Kprobes event arguments with types
|
||||
# requires: kprobe_events
|
||||
|
||||
grep "x8/16/32/64" README > /dev/null || exit_unsupported # version issue
|
||||
# requires: kprobe_events "x8/16/32/64":README
|
||||
|
||||
gen_event() { # Bitsize
|
||||
echo "p:testprobe _do_fork \$stack0:s$1 \$stack0:u$1 \$stack0:x$1 \$stack0:b4@4/$1"
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Kprobe event user-memory access
|
||||
# requires: kprobe_events
|
||||
# requires: kprobe_events '$arg<N>':README
|
||||
|
||||
grep -q '\$arg<N>' README || exit_unsupported # depends on arch
|
||||
grep -A10 "fetcharg:" README | grep -q 'ustring' || exit_unsupported
|
||||
grep -A10 "fetcharg:" README | grep -q '\[u\]<offset>' || exit_unsupported
|
||||
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Create/delete multiprobe on kprobe event
|
||||
# requires: kprobe_events
|
||||
|
||||
grep -q "Create/append/" README || exit_unsupported
|
||||
# requires: kprobe_events "Create/append/":README
|
||||
|
||||
# Choose 2 symbols for target
|
||||
SYM1=_do_fork
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: Kretprobe dynamic event with maxactive
|
||||
# requires: kprobe_events
|
||||
|
||||
grep -q 'r\[maxactive\]' README || exit_unsupported # this is older version
|
||||
# requires: kprobe_events 'r[maxactive]':README
|
||||
|
||||
# Test if we successfully reject unknown messages
|
||||
if echo 'a:myprobeaccept inet_csk_accept' > kprobe_events; then false; else true; fi
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: %HERE DESCRIBE WHAT THIS DOES%
|
||||
# requires: %HERE LIST THE REQUIRED FILES OR TRACERS%
|
||||
# requires: %HERE LIST THE REQUIRED FILES, TRACERS OR README-STRINGS%
|
||||
# The required tracer needs :tracer suffix, e.g. function:tracer
|
||||
# The required README string needs :README suffix, e.g. "x8/16/32/64":README
|
||||
# and the README string is treated as a fixed-string instead of regexp pattern.
|
||||
# you have to add ".tc" extention for your testcase file
|
||||
# Note that all tests are run with "errexit" option.
|
||||
|
||||
|
|
|
@ -1,15 +1,13 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: event trigger - test inter-event histogram trigger expected fail actions
|
||||
# requires: set_event snapshot
|
||||
# requires: set_event snapshot "snapshot()":README
|
||||
|
||||
fail() { #msg
|
||||
echo $1
|
||||
exit_fail
|
||||
}
|
||||
|
||||
grep -q "snapshot()" README || exit_unsupported # version issue
|
||||
|
||||
echo "Test expected snapshot action failure"
|
||||
|
||||
echo 'hist:keys=comm:onmatch(sched.sched_wakeup).snapshot()' >> events/sched/sched_waking/trigger && exit_fail
|
||||
|
|
|
@ -1,15 +1,13 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: event trigger - test inter-event histogram trigger onchange action
|
||||
# requires: set_event
|
||||
# requires: set_event "onchange(var)":README
|
||||
|
||||
fail() { #msg
|
||||
echo $1
|
||||
exit_fail
|
||||
}
|
||||
|
||||
grep -q "onchange(var)" README || exit_unsupported # version issue
|
||||
|
||||
echo "Test onchange action"
|
||||
|
||||
echo 'hist:keys=comm:newprio=prio:onchange($newprio).save(comm,prio) if comm=="ping"' >> events/sched/sched_waking/trigger
|
||||
|
|
|
@ -1,17 +1,13 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: event trigger - test inter-event histogram trigger snapshot action
|
||||
# requires: set_event snapshot events/sched/sched_process_fork/hist
|
||||
# requires: set_event snapshot events/sched/sched_process_fork/hist "onchange(var)":README "snapshot()":README
|
||||
|
||||
fail() { #msg
|
||||
echo $1
|
||||
exit_fail
|
||||
}
|
||||
|
||||
grep -q "onchange(var)" README || exit_unsupported # version issue
|
||||
|
||||
grep -q "snapshot()" README || exit_unsupported # version issue
|
||||
|
||||
echo "Test snapshot action"
|
||||
|
||||
echo 1 > events/sched/enable
|
||||
|
|
|
@ -1,15 +1,13 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# description: event trigger - test inter-event histogram trigger trace action
|
||||
# requires: set_event synthetic_events events/sched/sched_process_fork/hist
|
||||
# requires: set_event synthetic_events events/sched/sched_process_fork/hist "trace(<synthetic_event>":README
|
||||
|
||||
fail() { #msg
|
||||
echo $1
|
||||
exit_fail
|
||||
}
|
||||
|
||||
grep -q "trace(<synthetic_event>" README || exit_unsupported # version issue
|
||||
|
||||
echo "Test create synthetic event"
|
||||
|
||||
echo 'wakeup_latency u64 lat pid_t pid char comm[16]' > synthetic_events
|
||||
|
|
Loading…
Reference in New Issue