]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blob - tools/testing/selftests/ftrace/test.d/ftrace/func-filter-glob.tc
ASoC: wm8994: mark expected switch fall-throughs
[mirror_ubuntu-bionic-kernel.git] / tools / testing / selftests / ftrace / test.d / ftrace / func-filter-glob.tc
1 #!/bin/sh
2 # description: ftrace - function glob filters
3
4 # Make sure that function glob matching filter works.
5
6 if ! grep -q function available_tracers; then
7 echo "no function tracer configured"
8 exit_unsupported
9 fi
10
11 disable_tracing
12 clear_trace
13
14 ftrace_filter_check() { # glob grep
15 echo "$1" > set_ftrace_filter
16 cut -f1 -d" " set_ftrace_filter > $TMPDIR/actual
17 cut -f1 -d" " available_filter_functions | grep "$2" > $TMPDIR/expected
18 DIFF=`diff $TMPDIR/actual $TMPDIR/expected`
19 test -z "$DIFF"
20 }
21
22 # filter by *, front match
23 ftrace_filter_check '*schedule' '^.*schedule$'
24
25 # filter by *, middle match
26 ftrace_filter_check '*schedule*' '^.*schedule.*$'
27
28 # filter by *, end match
29 ftrace_filter_check 'schedule*' '^schedule.*$'
30
31 # Advanced full-glob matching feature is recently supported.
32 # Skip the tests if we are sure the kernel does not support it.
33 if grep -q 'accepts: .* glob-matching-pattern' README ; then
34
35 # filter by *, both side match
36 ftrace_filter_check 'sch*ule' '^sch.*ule$'
37
38 # filter by char class.
39 ftrace_filter_check '[Ss]y[Ss]_*' '^[Ss]y[Ss]_.*$'
40
41 # filter by ?, schedule is always good
42 if ! echo "sch?dule" > set_ftrace_filter; then
43 # test for powerpc 64
44 if ! echo ".sch?dule" > set_ftrace_filter; then
45 fail "can not enable schedule filter"
46 fi
47 cat set_ftrace_filter | grep '^.schedule$'
48 else
49 cat set_ftrace_filter | grep '^schedule$'
50 fi
51
52 fi
53
54 echo > set_ftrace_filter
55 enable_tracing