You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This catalogues the remaining GNU coreutils 9.12 test-suite failures so
they can be tracked and worked on individually. It replaces #13841, with the
entries fixed in the meantime removed and the new 9.12 tests added.
Run on main (0.13.0, 3ef4277), GNU coreutils 9.12, full make check then
every failure re-run serially to weed out load-induced flakes: 719 tests, 571 PASS, 63 FAIL, 5 ERROR, 78 SKIP.
Several tests are new in 9.12 (marked (new)) and several older ones were
tightened upstream, so this list is noticeably longer than the 9.11 one.
Status: entries carrying a PR number have a fix under review; each was
verified with a Rust test plus a re-run of the GNU test. Together they turn 12
of the failures below into passes.
misc/write-errors.sh: numfmt panics on ENOSPC - .unwrap() on a write error in src/uu/numfmt/src/format.rs:976 - numfmt now reports write error: ... and treats it as fatal whatever --invalid says (the test itself still fails on the other utilities) - PR numfmt: diagnose write errors instead of panicking #14715
shuf/shuf.sh: panic could not initialize ThreadRng: Function not implemented when getrandom is made to fail
misc/close-stdin.sh(new): programs run with stdin initially closed must diagnose EBADF
misc/getopt_vs_usage.sh: the test reads the option tables out of GNU's own src/*.c and greps our --help for each. Besides uname -p/-i and wc --debug (genuine gaps, fix ready), it reports options we do not implement at all: cp --keep-directory-symlink, env --env0-from, install --debug, ln -F/--directory, mv --no-copy, pr -c/-v/--output-tabs/--show-control-chars/--show-nonprinting, ptx --format, split -u/--unbuffered, stat --cached. Of little value for us, so it is being skipped through util/gnu-patches/ - PR GnuTests: skip getopt_vs_usage.sh, of little value for us #14717
misc/warning-errors.sh: failure to write warnings is handled gracefully
misc/write-errors.sh: programs promptly diagnose write errors - numfmt's panic is fixed by PR numfmt: diagnose write errors instead of panicking #14715, but ~40 utilities still fail to diagnose EBADF/ENOSPC, and cut -b1- /dev/zero aborts on a 16MiB allocation
od/od.pl: od quotes bad -j/-N arguments as $'a\t' instead of 'a\t'
pr/bounded-memory.sh: pr on files larger than memory (intermittent)
pr/options.sh(new): pr numeric option diagnostics (invalid page range '0', '-l PAGE_LENGTH' invalid number of lines, ...)
wc/wc.pl: wc -c -m on multibyte input reports the wrong count
ERROR Tests
env/env.sh, env/env0-from.sh: env --debug must quote the executed command (executing: './truetrue') - NOTE: Upstream is working on changing this
env/printenv.sh: (see INCOMPATIBLE - LD_PRELOAD)
rm/ext3-perf.sh, rm/many-dir-entries-vs-OOM.sh: set-up fails with Command could not be run: Argument list too long (os error 7) - we should fall back like GNU instead of erroring out
SKIPPED Tests
dd/nocache_fail.sh: diagnose failure to drop caches
id/gnu-zero-uids.sh: id must fail for processes with zero UIDs
install/stdin.sh(new): install reading from /dev/stdin
misc/tty-quoting.sh(new): quoting when stdout is a terminal
mkdir/smack-no-root.sh: SMACK labels for mkdir/mknod/mkfifo
mv/i-3.sh: mv file unwritable-file prompts, mv -f does not
The stty/* and a few other entries are skipped because the runner has no
controlling tty (or no SELinux/SMACK/ACL/xattr support), rather than being real
gaps.
INCOMPATIBLE Tests
Tests using LD_PRELOAD or gdb breakpoints cannot be fixed without matching
internal implementation details:
cp/nfs-removal-race.sh (LD_PRELOAD): NFS client removal race during cp S D
tail/inotify-race.sh, tail/inotify-race2.sh (gdb): races during the initial read
Several other failures above (cat/cat-distinct-err, dd/fail-ftruncate-fstat, dd/misc, misc/read-errors, misc/traversal-missing, shred/fifo, shuf/shuf, tail/debug, tee/short-write) use strace fault injection;
they are not structurally impossible - they fail because our syscall sequence or
our error messages differ.
dd/fail-ftruncate-fstat.sh (strace): dd must stop copying when ftruncate/fstat fail
This catalogues the remaining GNU coreutils 9.12 test-suite failures so
they can be tracked and worked on individually. It replaces #13841, with the
entries fixed in the meantime removed and the new 9.12 tests added.
Run on
main(0.13.0, 3ef4277), GNU coreutils 9.12, fullmake checkthenevery failure re-run serially to weed out load-induced flakes:
719 tests, 571 PASS, 63 FAIL, 5 ERROR, 78 SKIP.
Several tests are new in 9.12 (marked (new)) and several older ones were
tightened upstream, so this list is noticeably longer than the 9.11 one.
Status: entries carrying a PR number have a fix under review; each was
verified with a Rust test plus a re-run of the GNU test. Together they turn 12
of the failures below into passes.
Crashes (panics) - highest priority
Formatting argument out of rangeinsrc/uucore/src/lib/features/format/num_format.rs:434on a large format precision - a%fprecision aboveu16::MAXis now written and zero-padded withoutformat!- PR uucore: do not panic on a %f precision above the formatter limit #14714 (see also PR printf: avoid panic on large float precision #14713)numfmtpanics on ENOSPC -.unwrap()on a write error insrc/uu/numfmt/src/format.rs:976-numfmtnow reportswrite error: ...and treats it as fatal whatever--invalidsays (the test itself still fails on the other utilities) - PR numfmt: diagnose write errors instead of panicking #14715could not initialize ThreadRng: Function not implementedwhengetrandomis made to failFAILED Tests
cat: write error: ...vscat: -: ...) - PR cat: distinguish read and write errors #14721comm - -reading stdin twice - it currently hangs (the test times out), it is not just a wrong resultcsplit '//'is rejected instead of being treated as an empty pattern - empty//and%%accepted, plus the split in progress is reported before a read error - PR csplit: accept an empty regex and report the split in progress on error #14716cutmust use bounded memory (intermittent)date --debugoutputddand--, plus thestrace-injected error pathsdd ... nocacheon a pipe wrongly reportsfailed to discard cache: Illegal seekdf -m --output=size--mis rejected when combined with--output- PR df: support -m with --output #14742du --block-size/BLOCK_SIZEmust print the unit suffix (98KiB, not98)du --max-depth=-1must givedu: invalid maximum depth '-1', not a clap error - PR du: reject a negative --max-depth like GNU #14709env --default-signal=PIPEfold -w0error text (Numerical result out of rangevsResult too large), the overflow case used the wrong errno text too - PR fold: report ERANGE like GNU for out-of-range column counts #14706headmust quote file names in==> ... <==headers - PR head, tail: quote file names in the '==> name <==' headers #14710LS_COLORSdiagnostic must not be prefixed withwarning:- PR ls: diagnose an unparsable LS_COLORS as an error, not a warning #14708ls -ltime style must follow the locale (Jan 15 1998vs ISO)ls -mline wrapping - PR ls: fix -m line wrapping and quoting #14743src/*.cand greps our--helpfor each. Besidesuname -p/-iandwc --debug(genuine gaps, fix ready), it reports options we do not implement at all:cp --keep-directory-symlink,env --env0-from,install --debug,ln -F/--directory,mv --no-copy,pr -c/-v/--output-tabs/--show-control-chars/--show-nonprinting,ptx --format,split -u/--unbuffered,stat --cached. Of little value for us, so it is being skipped throughutil/gnu-patches/- PR GnuTests: skip getopt_vs_usage.sh, of little value for us #14717cp/mv/installmust not overwrite a just-created file - PR install: do not overwrite just-created files #14724 (install)printenvmust honourQUOTING_STYLEstdbufline/block buffering (intermittent)chmodreportsPermission deniedwhere GNU reports the race)numfmt's panic is fixed by PR numfmt: diagnose write errors instead of panicking #14715, but ~40 utilities still fail to diagnose EBADF/ENOSPC, andcut -b1- /dev/zeroaborts on a 16MiB allocationodquotes bad-j/-Narguments as$'a\t'instead of'a\t'pron files larger than memory (intermittent)prnumeric option diagnostics (invalid page range '0','-l PAGE_LENGTH' invalid number of lines, ...)prpage-formatting tests-Sregex must not print a multi-lineregexcrate error--word-regexpmust not produce extra output - PR ptx: skip empty word-regexp matches #14722shredon a FIFO -invalid file type/failed to open for writingdiagnosticsshred --removerenaming in an unwritable directory--input-rangewith operands - PR shuf: don't panic when getrandom failed (tests/shuf/shuf.sh) #14744sort --parallelinvalid argument diagnostics/dev/fullstat --formatwith%q-style quoting escapes%:X,%:Y, ... nanosecond format stringstail --debugoutput--follow=namemust not imply--retry(intermittent)tail -fon a symlink must keep following the targettail -Fmust not leak inotify resourcestail --pid=PID fifoexits responsively (intermittent)tail -fmust not hang on a pipe (intermittent) - it expects==> 'standard input' <==, so the header-quoting fix makes it pass - PR head, tail: quote file names in the '==> name <==' headers #14710tailmust quote file names in headers -headandtailnow shell-escape the name (including'standard input') - PR head, tail: quote file names in the '==> name <==' headers #14710teemust handle a short write (writes the whole buffer again)test N -eq Mexit statuses for some operandstab stop is too largevstab stop value is too large- PR unexpand: match GNU wording for a too-large tab stop #14707wc -c -mon multibyte input reports the wrong countERROR Tests
env --debugmust quote the executed command (executing: './truetrue') - NOTE: Upstream is working on changing thisLD_PRELOAD)Command could not be run: Argument list too long (os error 7)- we should fall back like GNU instead of erroring outSKIPPED Tests
idmust fail for processes with zero UIDsinstallreading from/dev/stdinmkdir/mknod/mkfifomv file unwritable-fileprompts,mv -fdoes notsortorderingsttysettingsThe
stty/*and a few other entries are skipped because the runner has nocontrolling tty (or no SELinux/SMACK/ACL/xattr support), rather than being real
gaps.
INCOMPATIBLE Tests
Tests using
LD_PRELOADorgdbbreakpoints cannot be fixed without matchinginternal implementation details:
cp S Dprintenvwith a corruptedenvironnproc/recursivelySeveral other failures above (cat/cat-distinct-err, dd/fail-ftruncate-fstat,
dd/misc, misc/read-errors, misc/traversal-missing, shred/fifo,
shuf/shuf, tail/debug, tee/short-write) use
stracefault injection;they are not structurally impossible - they fail because our syscall sequence or
our error messages differ.
ddmust stop copying when ftruncate/fstat fail