Skip to content

Commit

Permalink
ftrace: Add unit test for removing trace function
Browse files Browse the repository at this point in the history
A self test is provided for the trace function removal functionality.

Link: https://lkml.kernel.org/r/20210918153043.318016-2-carles.pey@gmail.com

Signed-off-by: Carles Pey <carles.pey@gmail.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
  • Loading branch information
Carles Pey authored and Steven Rostedt (VMware) committed Oct 11, 2021
1 parent 4ee1b4c commit 43c9dd8
Showing 1 changed file with 34 additions and 0 deletions.
34 changes: 34 additions & 0 deletions kernel/trace/trace_selftest.c
Original file line number Diff line number Diff line change
Expand Up @@ -287,6 +287,40 @@ static int trace_selftest_ops(struct trace_array *tr, int cnt)
if (trace_selftest_test_probe3_cnt != 4)
goto out_free;

/* Remove trace function from probe 3 */
func1_name = "!" __stringify(DYN_FTRACE_TEST_NAME);
len1 = strlen(func1_name);

ftrace_set_filter(&test_probe3, func1_name, len1, 0);

DYN_FTRACE_TEST_NAME();

print_counts();

if (trace_selftest_test_probe1_cnt != 3)
goto out_free;
if (trace_selftest_test_probe2_cnt != 2)
goto out_free;
if (trace_selftest_test_probe3_cnt != 4)
goto out_free;
if (cnt > 1) {
if (trace_selftest_test_global_cnt == 0)
goto out_free;
}
if (trace_selftest_test_dyn_cnt == 0)
goto out_free;

DYN_FTRACE_TEST_NAME2();

print_counts();

if (trace_selftest_test_probe1_cnt != 3)
goto out_free;
if (trace_selftest_test_probe2_cnt != 3)
goto out_free;
if (trace_selftest_test_probe3_cnt != 5)
goto out_free;

ret = 0;
out_free:
unregister_ftrace_function(dyn_ops);
Expand Down

0 comments on commit 43c9dd8

Please sign in to comment.