diff options
-rw-r--r-- | tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_string.tc | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_string.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_string.tc new file mode 100644 index 000000000000..5ba73035e1d9 --- /dev/null +++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_string.tc | |||
@@ -0,0 +1,46 @@ | |||
1 | #!/bin/sh | ||
2 | # SPDX-License-Identifier: GPL-2.0 | ||
3 | # description: Kprobe event string type argument | ||
4 | |||
5 | [ -f kprobe_events ] || exit_unsupported # this is configurable | ||
6 | |||
7 | echo 0 > events/enable | ||
8 | echo > kprobe_events | ||
9 | |||
10 | case `uname -m` in | ||
11 | x86_64) | ||
12 | ARG2=%si | ||
13 | OFFS=8 | ||
14 | ;; | ||
15 | i[3456]86) | ||
16 | ARG2=%cx | ||
17 | OFFS=4 | ||
18 | ;; | ||
19 | aarch64) | ||
20 | ARG2=%x1 | ||
21 | OFFS=8 | ||
22 | ;; | ||
23 | arm*) | ||
24 | ARG2=%r1 | ||
25 | OFFS=4 | ||
26 | ;; | ||
27 | *) | ||
28 | echo "Please implement other architecture here" | ||
29 | exit_untested | ||
30 | esac | ||
31 | |||
32 | : "Test get argument (1)" | ||
33 | echo "p:testprobe create_trace_kprobe arg1=+0(+0(${ARG2})):string" > kprobe_events | ||
34 | echo 1 > events/kprobes/testprobe/enable | ||
35 | ! echo test >> kprobe_events | ||
36 | tail -n 1 trace | grep -qe "testprobe.* arg1=\"test\"" | ||
37 | |||
38 | echo 0 > events/kprobes/testprobe/enable | ||
39 | : "Test get argument (2)" | ||
40 | echo "p:testprobe create_trace_kprobe arg1=+0(+0(${ARG2})):string arg2=+0(+${OFFS}(${ARG2})):string" > kprobe_events | ||
41 | echo 1 > events/kprobes/testprobe/enable | ||
42 | ! echo test1 test2 >> kprobe_events | ||
43 | tail -n 1 trace | grep -qe "testprobe.* arg1=\"test1\" arg2=\"test2\"" | ||
44 | |||
45 | echo 0 > events/enable | ||
46 | echo > kprobe_events | ||