-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Description
GNU coreutils Test Coverage Tracking
Failing GNU tests as of 2025-12-19 | Test Coverage Dashboard
Overview
With the number of failing tests now small enough to track individually, this document provides detailed descriptions of each remaining test failure and the next steps needed to achieve full GNU compatibility. Theres a bunch of duplicate PR's for the same tests in the PR queue now and I'm hoping this will allow us to consolidate our efforts.
I am also hoping to separate the tests that are incompatible because they either intercept glibc calls or call gdb on specific lines of source code since we are unable to fix those tests and it wouldn't be good to track compatibility of those tests.
FAILED
[ ] cp/cp-a-selinux.sh
GNU Test | SELinux context preservation with cp -a
[ ] cp/link-heap.sh - PR #9805
GNU Test | Reduce memory usage for cp -al by skipping unnecessary tracking
[ ] cp/preserve-gid.sh - PR #9803
GNU Test | Fix preserve-gid when canonicalize fails due to inaccessible parent dirs
[ ] date/date-debug.sh
GNU Test | Debug output for date parsing
[x] date/date-locale-hour.sh - PR #9654 ✓
GNU Test | Locale-aware 12h vs 24h format detection via nl_langinfo() - MERGED
[ ] date/date.pl
GNU Test | Comprehensive date parsing tests
[ ] dd/no-allocate.sh - PR #9806
GNU Test | Use ibs/obs-sized buffer for skip/seek on non-seekable files (ulimit -v tests)
[ ] dd/nocache_eof.sh - PR #9818
GNU Test | Fix nocache flag handling at EOF (use len=0 for posix_fadvise)
[ ] dd/stderr.sh
GNU Test | Stderr output formatting
[ ] env/env-signal-handler.sh - PR #9465, PR #9658
GNU Test | --default-signal, --block-signal, --list-signal-handling flags
[ ] fmt/non-space.sh - PR #9329
GNU Test | Handle invalid UTF-8 input by replacing malformed sequences
[ ] ls/ls-misc.pl
GNU Test | Miscellaneous ls tests
[ ] ls/stat-free-symlinks.sh
GNU Test | Symlink handling without stat calls
[ ] misc/close-stdout.sh
GNU Test | Proper handling of closed stdout
[ ] misc/stdbuf.sh
GNU Test | Line/block buffering with fifos
[ ] misc/tsort.pl
GNU Test | Topological sort tests
[ ] misc/write-errors.sh
GNU Test | Write error handling and reporting
[ ] mv/i-3.sh - PR #9599
GNU Test | TTY prompting for non-writable destination files (last failing mv test!)
[ ] numfmt/numfmt.pl
GNU Test | Number formatting comprehensive tests
[ ] ptx/ptx-overrun.sh
GNU Test | Buffer overrun prevention in ptx
[ ] rm/one-file-system.sh - PR #7569
GNU Test | --one-file-system and --preserve-root=all implementation
[ ] runcon/runcon-no-reorder.sh
GNU Test | SELinux context argument ordering
[ ] shred/shred-passes.sh - PR #9317, PR #9649
GNU Test | Deterministic pass sequence + stop on write errors
[ ] sort/sort-float.sh
GNU Test | Floating point number sorting
[ ] sort/sort-h-thousands-sep.sh
GNU Test | Human-readable sort with thousands separators
[ ] sort/sort-merge-fdlimit.sh
GNU Test | Merge sort file descriptor limits
[ ] sort/sort-month.sh - PR #9722
GNU Test | Locale-aware month parsing (ICU), handles "janv." and Latin-1
[ ] sort/sort.pl
GNU Test | Comprehensive sort tests
[ ] stty/stty.sh - PR #9432, PR #9490, PR #9517
GNU Test | --all output formatting, COLUMNS env, baud rate settings
[ ] tac/tac-2-non-seekable.sh - PR #9664
GNU Test | Detect closed stdin before Rust sanitizes to /dev/null
[ ] tail/inotify-rotate-resources.sh
GNU Test | Inotify resource handling during log rotation
[ ] tail/pipe-f.sh
GNU Test | Following pipes
SKIPPED
[ ] df/skip-rootfs.sh
GNU Test | Skip rootfs in output
[ ] id/gnu-zero-uids.sh
GNU Test | Handling of UID 0
[ ] id/smack.sh
GNU Test | SMACK security labels
[ ] mkdir/smack-no-root.sh
GNU Test | SMACK labels without root
[ ] mkdir/smack-root.sh
GNU Test | SMACK labels with root
[x] mkdir/writable-under-readonly.sh - PR #9530 ✓
GNU Test | Creating writable dir under readonly parent - TEST ENABLED
[ ] numfmt/mb-non-utf8.sh - PR #9807 (moves to FAIL)
GNU Test | Multibyte non-UTF8 handling - adds non-UTF8 locale to CI
[ ] pr/pr-tests.pl
GNU Test | Page formatting tests
[x] rm/fail-eperm.xpl - PR #9525, PR #9531 ✓
GNU Test | EPERM error on files not owned by user - MERGED/FIXED
[ ] tac/tac-continue.sh - PR #9664
GNU Test | Detect closed stdin before Rust sanitizes to /dev/null
[ ] tail/inotify-dir-recreate.sh
GNU Test | Directory recreation with inotify
[ ] timeout/timeout-group.sh - PR #9173
GNU Test | sigtimedwait() instead of 100ms polling (100ms → 1ms)
INCOMPATIBLE
Tests that use LD_PRELOAD to intercept glibc calls or gdb breakpoints. If we don't use the same internal calls, we will have to patch these tests.
cp/nfs-removal-race.sh (LD_PRELOAD)
GNU Test | Intercepts glibc to simulate NFS race condition
csplit/csplit-io-err.sh (LD_PRELOAD)
GNU Test | Intercepts glibc to simulate I/O errors
df/no-mtab-status.sh (LD_PRELOAD)
GNU Test | Intercepts glibc to simulate missing mtab
df/skip-duplicates.sh (LD_PRELOAD)
GNU Test | Intercepts glibc to inject duplicate mount entries
nproc/nproc-quota.sh (LD_PRELOAD)
GNU Test | Intercepts glibc to simulate CPU quota
rm/r-root.sh (LD_PRELOAD + gdb)
GNU Test | Uses gdb breakpoints and LD_PRELOAD for safety net
rm/rm-readdir-fail.sh (LD_PRELOAD)
GNU Test | Intercepts readdir to simulate failures
stty/bad-speed.sh (LD_PRELOAD)
GNU Test | Intercepts cfsetispeed to simulate failures
tail/inotify-race.sh (gdb)
GNU Test | Uses gdb breakpoints to trigger race conditions
tail/inotify-race2.sh (gdb)
GNU Test | Uses gdb breakpoints to trigger race conditions
ERROR
[ ] misc/usage_vs_getopt.sh
GNU Test | Usage message consistency with getopt