From b5792f8e23d1599dcce49bc83e5d128abee484f3 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sat, 21 Feb 2026 13:59:39 +0200 Subject: Enable name_to_handle_at and io_uring fd attribution Amp-Thread-ID: https://ampcode.com/threads/T-019c7fec-eec9-706a-8338-3ce674802680 Co-authored-by: Amp --- internal/generate/codegen_test.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'internal/generate/codegen_test.go') diff --git a/internal/generate/codegen_test.go b/internal/generate/codegen_test.go index b19a824..23ab7c1 100644 --- a/internal/generate/codegen_test.go +++ b/internal/generate/codegen_test.go @@ -129,6 +129,26 @@ func TestGenerateNullHandler(t *testing.T) { } } +func TestGenerateIoUringEnterHandler(t *testing.T) { + output := generateFromPair(t, FormatIoUringEnter, FormatExitIoUringEnter) + + requireContains(t, output, `SEC("tracepoint/syscalls/sys_enter_io_uring_enter")`) + requireContains(t, output, "struct fd_event *ev") + requireContains(t, output, "ev->event_type = ENTER_FD_EVENT;") + requireContains(t, output, "ev->trace_id = SYS_ENTER_IO_URING_ENTER;") + requireContains(t, output, "ev->fd = (__s32)ctx->args[0];") +} + +func TestGenerateIoUringRegisterHandler(t *testing.T) { + output := generateFromPair(t, FormatIoUringRegister, FormatExitIoUringRegister) + + requireContains(t, output, `SEC("tracepoint/syscalls/sys_enter_io_uring_register")`) + requireContains(t, output, "struct fd_event *ev") + requireContains(t, output, "ev->event_type = ENTER_FD_EVENT;") + requireContains(t, output, "ev->trace_id = SYS_ENTER_IO_URING_REGISTER;") + requireContains(t, output, "ev->fd = (__s32)ctx->args[0];") +} + func TestGenerateDup3Handler(t *testing.T) { output := generateFromPair(t, FormatDup3, FormatExitDup3) @@ -146,6 +166,16 @@ func TestGenerateOpenByHandleAtHandler(t *testing.T) { requireContains(t, output, "ev->flags = (__s32)ctx->args[2];") } +func TestGenerateNameToHandleAtHandler(t *testing.T) { + output := generateFromPair(t, FormatNameToHandleAt, FormatExitNameToHandleAt) + + requireContains(t, output, `SEC("tracepoint/syscalls/sys_enter_name_to_handle_at")`) + requireContains(t, output, "struct path_event *ev") + requireContains(t, output, "ev->event_type = ENTER_PATH_EVENT;") + requireContains(t, output, "ev->trace_id = SYS_ENTER_NAME_TO_HANDLE_AT;") + requireContains(t, output, "bpf_probe_read_user_str(ev->pathname, sizeof(ev->pathname), (void*)ctx->args[1]);") +} + func TestGenerateIgnoredComment(t *testing.T) { output := generateFromPair(t, FormatKill, FormatExitKill) -- cgit v1.2.3