Skip to content

Commit 3e7269d

Browse files
sunlimingrostedt
authored andcommitted
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/[email protected] Acked-by: Beau Belgrave <[email protected]> Acked-by: Masami Hiramatsu (Google) <[email protected]> Signed-off-by: sunliming <[email protected]> Signed-off-by: Steven Rostedt (Google) <[email protected]>
1 parent 6f05dca commit 3e7269d

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

tools/testing/selftests/user_events/ftrace_test.c

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -316,6 +316,39 @@ TEST_F(user, write_events) {
316316
ASSERT_EQ(EINVAL, errno);
317317
}
318318

319+
TEST_F(user, write_empty_events) {
320+
struct user_reg reg = {0};
321+
struct iovec io[1];
322+
int before = 0, after = 0;
323+
324+
reg.size = sizeof(reg);
325+
reg.name_args = (__u64)"__test_event";
326+
reg.enable_bit = 31;
327+
reg.enable_addr = (__u64)&self->check;
328+
reg.enable_size = sizeof(self->check);
329+
330+
io[0].iov_base = &reg.write_index;
331+
io[0].iov_len = sizeof(reg.write_index);
332+
333+
/* Register should work */
334+
ASSERT_EQ(0, ioctl(self->data_fd, DIAG_IOCSREG, &reg));
335+
ASSERT_EQ(0, reg.write_index);
336+
ASSERT_EQ(0, self->check);
337+
338+
/* Enable event */
339+
self->enable_fd = open(enable_file, O_RDWR);
340+
ASSERT_NE(-1, write(self->enable_fd, "1", sizeof("1")))
341+
342+
/* Event should now be enabled */
343+
ASSERT_EQ(1 << reg.enable_bit, self->check);
344+
345+
/* Write should make it out to ftrace buffers */
346+
before = trace_bytes();
347+
ASSERT_NE(-1, writev(self->data_fd, (const struct iovec *)io, 1));
348+
after = trace_bytes();
349+
ASSERT_GT(after, before);
350+
}
351+
319352
TEST_F(user, write_fault) {
320353
struct user_reg reg = {0};
321354
struct iovec io[2];

0 commit comments

Comments
 (0)