Merge tag 'trace-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux...
[sfrench/cifs-2.6.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 # requires: kprobe_events
5
6 case `uname -m` in
7 x86_64)
8   ARG1=%di
9 ;;
10 i[3456]86)
11   ARG1=%ax
12 ;;
13 aarch64)
14   ARG1=%x0
15 ;;
16 arm*)
17   ARG1=%r0
18 ;;
19 ppc64*)
20   ARG1=%r3
21 ;;
22 ppc*)
23   ARG1=%r3
24 ;;
25 s390*)
26   ARG1=%r2
27 ;;
28 mips*)
29   ARG1=%r4
30 ;;
31 loongarch*)
32   ARG1=%r4
33 ;;
34 riscv*)
35   ARG1=%a0
36 ;;
37 *)
38   echo "Please implement other architecture here"
39   exit_untested
40 esac
41
42 : "Test get argument (1)"
43 if grep -q eventfs_create_dir available_filter_functions; then
44   DIR_NAME="eventfs_create_dir"
45 elif grep -q eventfs_add_dir available_filter_functions; then
46   DIR_NAME="eventfs_add_dir"
47 else
48   DIR_NAME="tracefs_create_dir"
49 fi
50 echo "p:testprobe ${DIR_NAME} arg1=+0(${ARG1}):string" > kprobe_events
51 echo 1 > events/kprobes/testprobe/enable
52 echo "p:test $FUNCTION_FORK" >> kprobe_events
53 grep -qe "testprobe.* arg1=\"test\"" trace
54
55 echo 0 > events/kprobes/testprobe/enable
56 : "Test get argument (2)"
57 echo "p:testprobe ${DIR_NAME} arg1=+0(${ARG1}):string arg2=+0(${ARG1}):string" > kprobe_events
58 echo 1 > events/kprobes/testprobe/enable
59 echo "p:test $FUNCTION_FORK" >> kprobe_events
60 grep -qe "testprobe.* arg1=\"test\" arg2=\"test\"" trace
61