[PATCH v8 5/5] selftests/ftrace: Add selftest for testing duplicate eprobes and kprobes

From: Steven Rostedt
Date: Thu Aug 19 2021 - 11:29:36 EST


From: "Steven Rostedt (VMware)" <rostedt@xxxxxxxxxxx>

Add a selftest that makes sure that eprobes and kprobes can not be created
with the same group and name as existing events.

Cc: Shuah Khan <shuah@xxxxxxxxxx>
Cc: Shuah Khan <skhan@xxxxxxxxxxxxxxxxxxx>
Cc: linux-kselftest@xxxxxxxxxxxxxxx
Signed-off-by: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx>
---
.../ftrace/test.d/dynevent/test_duplicates.tc | 28 +++++++++++++++++++
1 file changed, 28 insertions(+)
create mode 100644 tools/testing/selftests/ftrace/test.d/dynevent/test_duplicates.tc

diff --git a/tools/testing/selftests/ftrace/test.d/dynevent/test_duplicates.tc b/tools/testing/selftests/ftrace/test.d/dynevent/test_duplicates.tc
new file mode 100644
index 000000000000..022b569267ed
--- /dev/null
+++ b/tools/testing/selftests/ftrace/test.d/dynevent/test_duplicates.tc
@@ -0,0 +1,28 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+# description: Generic dynamic event - check if duplicate events are caught
+# requires: dynamic_events "e[:[<group>/]<event>] <attached-group>.<attached-event>o [<args>]":README
+
+echo 0 > events/enable
+
+clear_dynamic_events
+
+# first create dynamic events for eprobes and kprobes.
+
+echo 'e:egroup/eevent syscalls/sys_enter_openat file=+0($filename):ustring' >> dynamic_events
+echo 'p:kgroup/kevent vfs_open file=+0($arg2)' >> dynamic_events
+
+# Test eprobe for same eprobe, existing kprobe and existing event
+! echo 'e:egroup/eevent syscalls/sys_enter_openat file=+0($filename):ustring' >> dynamic_events
+! echo 'e:kgroup/kevent syscalls/sys_enter_openat file=+0($filename):ustring' >> dynamic_events
+! echo 'e:syscalls/sys_enter_open syscalls/sys_enter_openat file=+0($filename):ustring' >> dynamic_events
+
+# Test kprobe for same kprobe, existing eprobe and existing event
+! echo 'p:kgroup/kevent vfs_open file=+0($arg2)' >> dynamic_events
+! echo 'p:egroup/eevent vfs_open file=+0($arg2)' >> dynamic_events
+! echo 'p:syscalls/sys_enter_open vfs_open file=+0($arg2)' >> dynamic_events
+
+echo '-:egroup/eevent' >> dynamic_events
+echo '-:kgroup/kevent' >> dynamic_events
+
+clear_trace
--
2.30.2