selftests/ftrace: Add new test case which checks non unique symbol
authorFrancis Laniel <flaniel@linux.microsoft.com>
Fri, 20 Oct 2023 10:42:50 +0000 (13:42 +0300)
committerMasami Hiramatsu (Google) <mhiramat@kernel.org>
Fri, 20 Oct 2023 13:11:49 +0000 (22:11 +0900)
If name_show() is non unique, this test will try to install a kprobe on this
function which should fail returning EADDRNOTAVAIL.
On kernel where name_show() is not unique, this test is skipped.

Link: https://lore.kernel.org/all/20231020104250.9537-3-flaniel@linux.microsoft.com/
Cc: stable@vger.kernel.org
Signed-off-by: Francis Laniel <flaniel@linux.microsoft.com>
Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
tools/testing/selftests/ftrace/test.d/kprobe/kprobe_non_uniq_symbol.tc [new file with mode: 0644]

diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_non_uniq_symbol.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_non_uniq_symbol.tc
new file mode 100644 (file)
index 0000000..bc95144
--- /dev/null
@@ -0,0 +1,13 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+# description: Test failure of registering kprobe on non unique symbol
+# requires: kprobe_events
+
+SYMBOL='name_show'
+
+# We skip this test on kernel where SYMBOL is unique or does not exist.
+if [ "$(grep -c -E "[[:alnum:]]+ t ${SYMBOL}" /proc/kallsyms)" -le '1' ]; then
+       exit_unsupported
+fi
+
+! echo "p:test_non_unique ${SYMBOL}" > kprobe_events