| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Relocates the two non-canonical main packages so every binary in the repo
lives at ./cmd/<BINARY>/main.go:
- tools/filewriter/ -> cmd/filewriter/
- integrationtests/cmd/ioworkload/ (20 files) -> cmd/ioworkload/
Consumers updated:
- Magefile.go: workloadSourcePath now ./cmd/ioworkload
- integrationtests/README.md: structure note points at ../cmd/ioworkload
Files moved with git mv so git log --follow history is preserved.
cmd/ior/main.go was already canonical and is untouched.
Verified: mage build produces the ior binary; go build ./cmd/...
builds filewriter and ioworkload; go test ./cmd/ioworkload passes;
go vet ./cmd/filewriter ./cmd/ioworkload is clean.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Split the 2494-line scenarios.go monolith into 14 focused files by
syscall category: open, readwrite, close, dup, fcntl, rename, link,
unlink, dir, stat, sync, truncate, iouring, plus the slimmed-down
scenarios.go containing only the registry map, makeTempDir, and crash.
Extracted rawLink, rawSymlink, rawReadlink helpers in scenario_link.go
to reduce code duplication in linkBasic.
Task: #349 (Go best practices: split oversized scenarios file)
Amp-Thread-ID: https://ampcode.com/threads/T-019c81c6-e1b6-747a-9144-40f6be997e60
Co-authored-by: Amp <amp@ampcode.com>
|
|
Add two new scenarios and tests:
- iouring-enter-ebadf: io_uring_enter with invalid fd 99999
- iouring-register-ebadf: io_uring_register with invalid fd 99999
Both verify ior captures the tracepoint even when the syscall fails.
Task: 348
Amp-Thread-ID: https://ampcode.com/threads/T-019c81bb-a460-7298-a25a-fa33502272b9
Co-authored-by: Amp <amp@ampcode.com>
|
|
Add two negative test scenarios:
- truncate-enoent: SYS_TRUNCATE on nonexistent file, expects ENOENT
- truncate-ftruncate-ebadf: SYS_FTRUNCATE on invalid fd 99999, expects EBADF
Both verify ior captures tracepoints even when syscalls fail.
Amp-Thread-ID: https://ampcode.com/threads/T-019c81b7-9641-763e-b99e-20a0d3552005
Co-authored-by: Amp <amp@ampcode.com>
|
|
Add three EBADF scenarios testing ior's ability to capture sync-related
tracepoints even when the underlying syscall fails:
- sync-fsync-ebadf: fsync on invalid fd, expects enter_fsync
- sync-fdatasync-ebadf: fdatasync on invalid fd, expects enter_fdatasync
- sync-file-range-ebadf: sync_file_range on invalid fd, expects enter_sync_file_range
Amp-Thread-ID: https://ampcode.com/threads/T-019c81b4-216a-732c-90b1-e6771e27ed75
Co-authored-by: Amp <amp@ampcode.com>
|
|
Add three negative test scenarios for stat-family syscalls:
- stat-enoent: SYS_STAT on nonexistent file (ENOENT)
- stat-access-enoent: SYS_ACCESS on nonexistent file (ENOENT, since
tests run as root and EACCES is bypassed)
- stat-fstat-ebadf: SYS_FSTAT on invalid fd 99999 (EBADF)
Each scenario verifies that ior captures the tracepoint on syscall
entry even when the syscall fails.
Amp-Thread-ID: https://ampcode.com/threads/T-019c81af-d01d-75db-8a92-37951fb1503c
Co-authored-by: Amp <amp@ampcode.com>
|
|
Add three negative test scenarios for directory operations:
- dir-mkdir-eexist: SYS_MKDIR on existing directory (EEXIST)
- dir-chdir-enoent: SYS_CHDIR to nonexistent directory (ENOENT)
- dir-getdents-ebadf: SYS_GETDENTS64 with invalid fd (EBADF)
All use raw syscalls to hit exact tracepoints. Tests verify ior
captures events even when syscalls fail (entry-side capture).
Amp-Thread-ID: https://ampcode.com/threads/T-019c81ab-0d62-726e-b859-91b4898be6fe
Co-authored-by: Amp <amp@ampcode.com>
|
|
Add three negative test scenarios for unlink syscall family:
- unlink-enoent: SYS_UNLINK on nonexistent file (ENOENT)
- unlink-rmdir-notempty: SYS_RMDIR on non-empty directory (ENOTEMPTY)
- unlink-unlinkat-enoent: SYS_UNLINKAT on nonexistent file (ENOENT)
All scenarios use raw syscalls to hit exact tracepoints and verify
ior captures them on entry even when the kernel returns an error.
Amp-Thread-ID: https://ampcode.com/threads/T-019c81a6-6612-7247-9d54-6da5b63a38b4
Co-authored-by: Amp <amp@ampcode.com>
|
|
Add three negative scenarios and tests:
- link-enoent: hard link to nonexistent source (ENOENT) via raw SYS_LINK
- link-symlink-eexist: symlink where target already exists (EEXIST) via raw SYS_SYMLINK
- link-readlinkat-einval: readlinkat on non-symlink file (EINVAL) via SYS_READLINKAT
All use raw syscalls to hit exact tracepoints. ior captures on syscall
entry, so even failed syscalls have their arguments recorded.
Amp-Thread-ID: https://ampcode.com/threads/T-019c81a2-693b-716f-9ed2-25a674f1fc9a
Co-authored-by: Amp <amp@ampcode.com>
|
|
- rename-enoent: rename nonexistent file via SYS_RENAME (ENOENT)
- rename-noreplace: renameat2 with RENAME_NOREPLACE on existing target (EEXIST)
Both verify ior captures tracepoints on entry even when syscall fails.
Amp-Thread-ID: https://ampcode.com/threads/T-019c819e-cdae-7777-9be6-992ca8a7b96b
Co-authored-by: Amp <amp@ampcode.com>
|
|
Add two negative scenarios:
- fcntl-invalid-fd: calls SYS_FCNTL F_GETFL on invalid fd 99999 (EBADF)
- fcntl-dupfd-max: calls F_DUPFD with minfd=1<<30 beyond RLIMIT_NOFILE (EINVAL)
Both verify ior captures enter_fcntl tracepoints even when syscalls fail.
Amp-Thread-ID: https://ampcode.com/threads/T-019c819b-5673-75ab-8eb4-227b6cf56b38
Co-authored-by: Amp <amp@ampcode.com>
|
|
Add three negative test scenarios for dup syscalls:
- dup-invalid-fd: dup on invalid fd 99999 (EBADF)
- dup2-same-fd: dup2(fd, fd) no-op case (POSIX documented behavior)
- dup3-invalid-flags: dup3 with 0xBAD flags (EINVAL)
All verify ior captures the tracepoint even when the syscall fails,
since BPF reads arguments on syscall entry before execution.
Task: 348
Amp-Thread-ID: https://ampcode.com/threads/T-019c8196-6186-7054-a4e5-640fce69e493
Co-authored-by: Amp <amp@ampcode.com>
|