-
-
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
[ ] date/date-ethiopia.sh
GNU Test | Ethiopian calendar translation support
Note: PR #9661 was an attempt but has been closed.
[ ] date/date-iran.sh
GNU Test | Iranian/Persian calendar translation support
Note: PR #9661 was an attempt but has been closed.
[x] date/date-locale-hour.sh - PR #9654 ✓
GNU Test | Locale-aware 12h vs 24h format detection via nl_langinfo() - MERGED
[ ] date/date-thailand.sh
GNU Test | Thai calendar translation support
Note: PR #9661 was an attempt but has been closed.
[ ] 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)
[ ] 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 - PR #9262
GNU Test | Align symlink coloring with GNU semantics (or=, mi=, ln=target)
[ ] ls/stat-free-symlinks.sh - PR #8728
GNU Test | Iterative loop for ls recursive directory search (prevents stack overflow)
[ ] misc/close-stdout.sh
GNU Test | Proper handling of closed stdout
[ ] misc/stdbuf.sh
GNU Test | Line/block buffering with fifos
[ ] 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-debug-warn.sh
GNU Test | Debug warning message formatting
[ ] 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
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/follow-stdin.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) - PR #9759 (test enabled)
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) - PR #9604
GNU Test | Intercepts readdir to simulate failures
PR #9604 wraps libc calls to handle LD_PRELOAD tests.
stty/bad-speed.sh (LD_PRELOAD) - PR #9517
GNU Test | Intercepts cfsetispeed to simulate failures
PR #9517 implements input/output baud rate setting so cfsetispeed is called.
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