OSDN Git Service

selftests/ftrace: Update synthetic event syntax errors
authorTom Zanussi <zanussi@kernel.org>
Mon, 1 Feb 2021 19:48:15 +0000 (13:48 -0600)
committerSteven Rostedt (VMware) <rostedt@goodmis.org>
Thu, 11 Feb 2021 21:22:20 +0000 (16:22 -0500)
Some of the synthetic event errors and positions have changed in the
code - update those and add several more tests.

Also add a runtime check to ensure that the kernel supports dynamic
strings in synthetic events, which these tests require.

Link: https://lkml.kernel.org/r/51402656433455baead34f068c6e9466b64df9c0.1612208610.git.zanussi@kernel.org
Fixes: 81ff92a93d95 (selftests/ftrace: Add test case for synthetic event syntax errors)
Reported-by: Masami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: Tom Zanussi <zanussi@kernel.org>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-synthetic_event_syntax_errors.tc

index ada594f..955e3ce 100644 (file)
@@ -1,19 +1,38 @@
 #!/bin/sh
 # SPDX-License-Identifier: GPL-2.0
 # description: event trigger - test synthetic_events syntax parser errors
-# requires: synthetic_events error_log
+# requires: synthetic_events error_log "char name[]' >> synthetic_events":README
 
 check_error() { # command-with-error-pos-by-^
     ftrace_errlog_check 'synthetic_events' "$1" 'synthetic_events'
 }
 
+check_dyn_error() { # command-with-error-pos-by-^
+    ftrace_errlog_check 'synthetic_events' "$1" 'dynamic_events'
+}
+
 check_error 'myevent ^chr arg'                 # INVALID_TYPE
-check_error 'myevent ^char str[];; int v'      # INVALID_TYPE
-check_error 'myevent char ^str]; int v'                # INVALID_NAME
-check_error 'myevent char ^str;[]'             # INVALID_NAME
-check_error 'myevent ^char str[; int v'                # INVALID_TYPE
-check_error '^mye;vent char str[]'             # BAD_NAME
-check_error 'myevent char str[]; ^int'         # INVALID_FIELD
-check_error '^myevent'                         # INCOMPLETE_CMD
+check_error 'myevent ^unsigned arg'            # INCOMPLETE_TYPE
+
+check_error 'myevent char ^str]; int v'                # BAD_NAME
+check_error '^mye-vent char str[]'             # BAD_NAME
+check_error 'myevent char ^st-r[]'             # BAD_NAME
+
+check_error 'myevent char str;^[]'             # INVALID_FIELD
+check_error 'myevent char str; ^int'           # INVALID_FIELD
+
+check_error 'myevent char ^str[; int v'                # INVALID_ARRAY_SPEC
+check_error 'myevent char ^str[kdjdk]'         # INVALID_ARRAY_SPEC
+check_error 'myevent char ^str[257]'           # INVALID_ARRAY_SPEC
+
+check_error '^mye;vent char str[]'             # INVALID_CMD
+check_error '^myevent ; char str[]'            # INVALID_CMD
+check_error '^myevent; char str[]'             # INVALID_CMD
+check_error '^myevent ;char str[]'             # INVALID_CMD
+check_error '^; char str[]'                    # INVALID_CMD
+check_error '^;myevent char str[]'             # INVALID_CMD
+check_error '^myevent'                         # INVALID_CMD
+
+check_dyn_error '^s:junk/myevent char str['    # INVALID_DYN_CMD
 
 exit 0