summaryrefslogtreecommitdiff
path: root/internal/collapse/fields.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-06-02 10:10:45 +0300
committerPaul Buetow <paul@buetow.org>2026-06-02 10:10:45 +0300
commit0cfdd29db2f9cae372617ef01ed4aecc2f6fa93d (patch)
tree6c030a22da20a85f813e2f52fc193b924deaf0dd /internal/collapse/fields.go
parent88769d471981911242dda27ed75d92866b2acf05 (diff)
test(xattr): add removexattrat end-to-end integration coverage
removexattrat(2) (Linux 6.13+) was the one xattr *at-variant lacking integration coverage: xattr_test.go exercised getxattrat/listxattrat (READ-classified byte counts) and the path-based setxattr, but never the REMOVE *at variant. Unlike its getxattrat/listxattrat siblings, removexattrat returns a 0/-1 status (not a byte count), so its exit must be UNCLASSIFIED — matching removexattr/lremovexattr/fremovexattr. Add an ioworkload scenario (xattr-removexattrat) that setxattr's a user.* attribute via a real path then removes it via raw removexattrat(AT_FDCWD, path, 0, name), plus TestXattrRemovexattrat asserting the path (args[1], after the dirfd) is captured (never the xattr name at args[3]) and that accounted bytes are exactly zero (guarding against wrongly READ-classifying it like getxattrat/ listxattrat). Distinct from the fd-based fremovexattr gap (task 8i0). Classification verified by inspection: FamilyFS (xattr marker), KindPathname at the pathname field (ctx->args[1]), and absent from the ret-classification table => UNCLASSIFIED. No generator change needed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Diffstat (limited to 'internal/collapse/fields.go')
0 files changed, 0 insertions, 0 deletions