On Wed, Mar 04, 2020 at 03:50:04PM -0500, Steven Rostedt wrote: > On Wed, 4 Mar 2020 10:14:35 -0600 > Seth Forshee <seth.forshee@xxxxxxxxxxxxx> wrote: > > > --- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_syntax_errors.tc > > +++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_syntax_errors.tc > > @@ -37,7 +37,7 @@ fi > > > > check_error 'p vfs_read ^$none_var' # BAD_VAR > > > > -check_error 'p vfs_read ^%none_reg' # BAD_REG_NAME > > +check_error 'p vfs_read ^%%none_reg' # BAD_REG_NAME > > check_error 'p vfs_read ^@12345678abcde' # BAD_MEM_ADDR > > check_error 'p vfs_read ^@+10' # FILE_ON_KPROBE > > > > @@ -80,7 +80,7 @@ check_error 'p vfs_read arg1=^' # NO_ARG_BODY > > # instruction boundary check is valid on x86 (at this moment) > > case $(uname -m) in > > x86_64|i[3456]86) > > - echo 'p vfs_read' > kprobe_events > > + printf 'p vfs_read' > kprobe_events > > if grep -q FTRACE ../kprobes/list ; then > > check_error 'p ^vfs_read+3' # BAD_INSN_BNDRY (only if function-tracer is enabled) > > fi > > @@ -89,13 +89,13 @@ esac > > > > # multiprobe errors > > if grep -q "Create/append/" README && grep -q "imm-value" README; then > > -echo 'p:kprobes/testevent _do_fork' > kprobe_events > > +printf 'p:kprobes/testevent _do_fork' > kprobe_events > > check_error '^r:kprobes/testevent do_exit' # DIFF_PROBE_TYPE > > -echo 'p:kprobes/testevent _do_fork abcd=\1' > kprobe_events > > -check_error 'p:kprobes/testevent _do_fork ^bcd=\1' # DIFF_ARG_TYPE > > -check_error 'p:kprobes/testevent _do_fork ^abcd=\1:u8' # DIFF_ARG_TYPE > > -check_error 'p:kprobes/testevent _do_fork ^abcd=\"foo"' # DIFF_ARG_TYPE > > -check_error '^p:kprobes/testevent _do_fork abcd=\1' # SAME_PROBE > > +printf 'p:kprobes/testevent _do_fork abcd=\\1' > kprobe_events > > +check_error 'p:kprobes/testevent _do_fork ^bcd=\\1' # DIFF_ARG_TYPE > > +check_error 'p:kprobes/testevent _do_fork ^abcd=\\1:u8' # DIFF_ARG_TYPE > > +check_error 'p:kprobes/testevent _do_fork ^abcd=\\"foo"'# DIFF_ARG_TYPE > > +check_error '^p:kprobes/testevent _do_fork abcd=\\1' # SAME_PROBE > > fi > > > > exit 0 > > > This change causes my tests to fail: > > ++ echo 'Test command: p vfs_read arg1="abcd' > Test command: p vfs_read arg1="abcd > ++ echo > ++ grep 'trace_kprobe: error:' -A 3 error_log > [61913.240093] trace_kprobe: error: Invalid fetch argument > Command: p vfs_read arg1="abcd > ^ > +++ tail -n 1 error_log > +++ wc -c > ++ N=29 > +++ expr 13 + 21 > ++ test 34 -eq 29 Ah, I did miss a couple of backslashes that need to be escaped there. The test passes for me without it though, so mabye printf behavior is less consistent than I thought. I'll send a v2, hopefully it will work better for you. Seth