- compare_gnu_result.py: use context managers for open(), use next(iter()) instead of [0] slice
- compare_size_results.py: raise TypeError instead of ValueError for invalid type (TRY004)
- compare_test_results.py: flatten nested if statements (SIM102), use writelines (FURB122)
- analyze-gnu-results.py: use .values() when dict values are the only thing used (PERF102)
Default ACL still keeps umask(0777) profiles owner-writable, but restore
LLVM's online-merge pool (%4m) instead of one file per process.
Signed-off-by: Alex Chen <l46983284@gmail.com>
Some uutests set umask(0777) before spawning the utility. LLVM profile
files created under that umask can be mode 000; later writes fail with
Permission denied on stderr and break exact asserts (e.g. mkfifo).
Prepare the profraw directory with a default owner-write ACL when
setfacl is available (hard-fail under CI), use coverage-%p-%m.profraw,
and install acl on the coverage Ubuntu job.
Signed-off-by: Alex Chen <l46983284@gmail.com>
Follow-up to the metadata TOCTOU fix (#11972, PR #12439):
- Add a syscall-level regression guard in util/check-safe-traversal.sh:
under strace, head must read metadata from the open descriptor
(fstat/statx on the fd) and must not stat the path before opening it.
Verified this fails on the pre-fix code and passes after.
- Add an integration test asserting that an unreadable file produces an
error but no "==> name <==" header, matching GNU (the header is only
printed after a successful open).
- Fix a stray paren in the Windows-branch comment.