diff options
| author | Paul Buetow <paul@buetow.org> | 2026-05-19 10:12:32 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-05-19 10:12:32 +0300 |
| commit | 127516b4bf63dc922df222825a9a6a1d7eacc214 (patch) | |
| tree | 3839a2f6a7f4f1bc713690678fc003d4e2be8a8c /cmd/ioworkload | |
| parent | 32a19cf9fb1344c9b1a61054d7cf2c90edc3708a (diff) | |
u6: add socket/socketpair kind scaffolding and wiring
Diffstat (limited to 'cmd/ioworkload')
| -rw-r--r-- | cmd/ioworkload/scenario_socket.go | 31 | ||||
| -rw-r--r-- | cmd/ioworkload/scenarios.go | 2 |
2 files changed, 33 insertions, 0 deletions
diff --git a/cmd/ioworkload/scenario_socket.go b/cmd/ioworkload/scenario_socket.go new file mode 100644 index 0000000..1ffc784 --- /dev/null +++ b/cmd/ioworkload/scenario_socket.go @@ -0,0 +1,31 @@ +package main + +import ( + "fmt" + "syscall" +) + +func socketBasic() error { + fd, err := syscall.Socket(syscall.AF_UNIX, syscall.SOCK_STREAM|syscall.SOCK_CLOEXEC, 0) + if err != nil { + return fmt.Errorf("socket: %w", err) + } + if err := syscall.Close(fd); err != nil { + return fmt.Errorf("close socket fd: %w", err) + } + return nil +} + +func socketpairBasic() error { + fds, err := syscall.Socketpair(syscall.AF_UNIX, syscall.SOCK_STREAM|syscall.SOCK_CLOEXEC, 0) + if err != nil { + return fmt.Errorf("socketpair: %w", err) + } + if err := syscall.Close(fds[0]); err != nil { + return fmt.Errorf("close socketpair fd0: %w", err) + } + if err := syscall.Close(fds[1]); err != nil { + return fmt.Errorf("close socketpair fd1: %w", err) + } + return nil +} diff --git a/cmd/ioworkload/scenarios.go b/cmd/ioworkload/scenarios.go index 326c954..aedbffa 100644 --- a/cmd/ioworkload/scenarios.go +++ b/cmd/ioworkload/scenarios.go @@ -25,6 +25,8 @@ var scenarios = map[string]func() error{ "readwrite-pread-invalid": readwritePreadInvalid, "readwrite-pwrite-invalid": readwritePwriteInvalid, "retbytes-phase-a": retbytesPhaseA, + "socket-basic": socketBasic, + "socketpair-basic": socketpairBasic, "family-mixed": familyMixed, "close-basic": closeBasic, "close-range": closeRange, |
