GNU Linux-libre 4.19.286-gnu1
[releases.git] / tools / testing / selftests / ftrace / test.d / kprobe / kprobe_args_string.tc
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   ARG1=%di
13 ;;
14 i[3456]86)
15   ARG1=%ax
16 ;;
17 aarch64)
18   ARG1=%x0
19 ;;
20 arm*)
21   ARG1=%r0
22 ;;
23 ppc64*)
24   ARG1=%r3
25 ;;
26 ppc*)
27   ARG1=%r3
28 ;;
29 *)
30   echo "Please implement other architecture here"
31   exit_untested
32 esac
33
34 : "Test get argument (1)"
35 echo "p:testprobe tracefs_create_dir arg1=+0(${ARG1}):string" > kprobe_events
36 echo 1 > events/kprobes/testprobe/enable
37 echo "p:test _do_fork" >> kprobe_events
38 grep -qe "testprobe.* arg1=\"test\"" trace
39
40 echo 0 > events/kprobes/testprobe/enable
41 : "Test get argument (2)"
42 echo "p:testprobe tracefs_create_dir arg1=+0(${ARG1}):string arg2=+0(${ARG1}):string" > kprobe_events
43 echo 1 > events/kprobes/testprobe/enable
44 echo "p:test _do_fork" >> kprobe_events
45 grep -qe "testprobe.* arg1=\"test\" arg2=\"test\"" trace
46
47 echo 0 > events/enable
48 echo > kprobe_events