diff options
| author | Paul Buetow <paul@buetow.org> | 2026-05-29 10:02:18 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-05-29 10:02:18 +0300 |
| commit | e77aa19957b5f38fd47dc8de0a701ecf8482697b (patch) | |
| tree | f014235d87df591878f2e3befffb2a91cef610a5 /internal/generate/testdata.go | |
| parent | 3bcdbe94d8b72ebcd829dbf7c1a582d2268fef45 (diff) | |
test(epoll_create): lock in epoll_create1 args[0] flags capture
Audited epoll_create/epoll_create1 against man 2 epoll_create.
Implementation already correct: both classify as KindEventfd (fd-creating),
epoll_create(size) hardcodes flags=0 (no flags arg), epoll_create1(flags)
reads ctx->args[0], and exit captures the returned fd via ev->ret.
Add FormatEpollCreate1/FormatExitEpollCreate1 fixtures and
TestGenerateEpollCreate1HandlerUsesArg0Flags as the positive counterpart to
the existing TestGenerateEpollCreateHandlerUsesZeroFlags negative test,
asserting the enter handler captures args[0] as flags rather than 0.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Diffstat (limited to 'internal/generate/testdata.go')
| -rw-r--r-- | internal/generate/testdata.go | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/internal/generate/testdata.go b/internal/generate/testdata.go index 9b57983..9676491 100644 --- a/internal/generate/testdata.go +++ b/internal/generate/testdata.go @@ -1805,6 +1805,35 @@ format: print fmt: "0x%lx", REC->ret ` +// epoll_create1(int flags) — single argument carrying flags at args[0]. +const FormatEpollCreate1 = `name: sys_enter_epoll_create1 +ID: 1453 +format: + field:unsigned short common_type; offset:0; size:2; signed:0; + field:unsigned char common_flags; offset:2; size:1; signed:0; + field:unsigned char common_preempt_count; offset:3; size:1; signed:0; + field:int common_pid; offset:4; size:4; signed:1; + + field:int __syscall_nr; offset:8; size:4; signed:1; + field:int flags; offset:16; size:8; signed:0; + +print fmt: "flags: 0x%08lx", ((unsigned long)(REC->flags)) +` + +const FormatExitEpollCreate1 = `name: sys_exit_epoll_create1 +ID: 1452 +format: + field:unsigned short common_type; offset:0; size:2; signed:0; + field:unsigned char common_flags; offset:2; size:1; signed:0; + field:unsigned char common_preempt_count; offset:3; size:1; signed:0; + field:int common_pid; offset:4; size:4; signed:1; + + field:int __syscall_nr; offset:8; size:4; signed:1; + field:long ret; offset:16; size:8; signed:1; + +print fmt: "0x%lx", REC->ret +` + // pidfd_open(pid_t pid, unsigned int flags) — flags at args[1], not args[0]. const FormatPidfdOpen = `name: sys_enter_pidfd_open ID: 1461 |
