summaryrefslogtreecommitdiff
path: root/internal/generate/testdata.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-05-29 10:02:18 +0300
committerPaul Buetow <paul@buetow.org>2026-05-29 10:02:18 +0300
commite77aa19957b5f38fd47dc8de0a701ecf8482697b (patch)
treef014235d87df591878f2e3befffb2a91cef610a5 /internal/generate/testdata.go
parent3bcdbe94d8b72ebcd829dbf7c1a582d2268fef45 (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.go29
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