Merge tag 'trace-printf-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/trace...
[drm/drm-misc.git] / tools / testing / selftests / ftrace / test.d / kprobe / kprobe_args_char.tc
blob77f4c07cdcb89934aebff5b9c41e02911d5410fc
1 #!/bin/sh
2 # SPDX-License-Identifier: GPL-2.0
3 # description: Kprobe event char type argument
4 # requires: kprobe_events available_filter_functions
6 case `uname -m` in
7 x86_64)
8 ARG1=%di
9 ;;
10 i[3456]86)
11 ARG1=%ax
13 aarch64)
14 ARG1=%x0
16 arm*)
17 ARG1=%r0
19 ppc64*)
20 ARG1=%r3
22 ppc*)
23 ARG1=%r3
25 s390*)
26 ARG1=%r2
28 mips*)
29 ARG1=%r4
31 loongarch*)
32 ARG1=%r4
34 riscv*)
35 ARG1=%a0
38 echo "Please implement other architecture here"
39 exit_untested
40 esac
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"
50 echo "p:testprobe ${DIR_NAME} arg1=+0(${ARG1}):char" > kprobe_events
51 echo 1 > events/kprobes/testprobe/enable
52 echo "p:test $FUNCTION_FORK" >> kprobe_events
53 grep -qe "testprobe.* arg1='t'" trace
55 echo 0 > events/kprobes/testprobe/enable
56 : "Test get argument (2)"
57 echo "p:testprobe ${DIR_NAME} arg1=+0(${ARG1}):char arg2=+0(${ARG1}):char[4]" > kprobe_events
58 echo 1 > events/kprobes/testprobe/enable
59 echo "p:test $FUNCTION_FORK" >> kprobe_events
60 grep -qe "testprobe.* arg1='t' arg2={'t','e','s','t'}" trace