mirror of
https://github.com/torvalds/linux.git
synced 2024-12-11 05:33:09 +00:00
selftests/user_events: Add ftrace self-test for empty arguments events
Tests to ensure events that has empty arguments can input trace record correctly when using ftrace. Link: https://lkml.kernel.org/r/20230606062027.1008398-3-sunliming@kylinos.cn Acked-by: Beau Belgrave <beaub@linux.microsoft.com> Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> Signed-off-by: sunliming <sunliming@kylinos.cn> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
This commit is contained in:
parent
6f05dcabe5
commit
3e7269dd5f
@ -316,6 +316,39 @@ TEST_F(user, write_events) {
|
||||
ASSERT_EQ(EINVAL, errno);
|
||||
}
|
||||
|
||||
TEST_F(user, write_empty_events) {
|
||||
struct user_reg reg = {0};
|
||||
struct iovec io[1];
|
||||
int before = 0, after = 0;
|
||||
|
||||
reg.size = sizeof(reg);
|
||||
reg.name_args = (__u64)"__test_event";
|
||||
reg.enable_bit = 31;
|
||||
reg.enable_addr = (__u64)&self->check;
|
||||
reg.enable_size = sizeof(self->check);
|
||||
|
||||
io[0].iov_base = ®.write_index;
|
||||
io[0].iov_len = sizeof(reg.write_index);
|
||||
|
||||
/* Register should work */
|
||||
ASSERT_EQ(0, ioctl(self->data_fd, DIAG_IOCSREG, ®));
|
||||
ASSERT_EQ(0, reg.write_index);
|
||||
ASSERT_EQ(0, self->check);
|
||||
|
||||
/* Enable event */
|
||||
self->enable_fd = open(enable_file, O_RDWR);
|
||||
ASSERT_NE(-1, write(self->enable_fd, "1", sizeof("1")))
|
||||
|
||||
/* Event should now be enabled */
|
||||
ASSERT_EQ(1 << reg.enable_bit, self->check);
|
||||
|
||||
/* Write should make it out to ftrace buffers */
|
||||
before = trace_bytes();
|
||||
ASSERT_NE(-1, writev(self->data_fd, (const struct iovec *)io, 1));
|
||||
after = trace_bytes();
|
||||
ASSERT_GT(after, before);
|
||||
}
|
||||
|
||||
TEST_F(user, write_fault) {
|
||||
struct user_reg reg = {0};
|
||||
struct iovec io[2];
|
||||
|
Loading…
Reference in New Issue
Block a user