fix(tac):gnu tac-2-nonseekable.sh test
Add a new function ensure_stdin_open() that uses the nix crate to check if stdin is open before attempting to read from it. This prevents potential errors when stdin is closed, improving robustness of the tac command on Unix systems. Updated dependencies to include nix in Cargo.toml and Cargo.lock.
relate https://github.com/uutils/coreutils/issues/9127
CodSpeed Performance Report
Merging #9137 will not alter performance
Comparing mattsu2020:tac_compatibility (c768673) with main (06d843f)
Summary
✅ 127 untouched
⏩ 6 skipped[^skipped]
[^skipped]: 6 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.
GNU testsuite comparison:
Skipping an intermittent issue tests/misc/tee (passes in this run but fails in the 'main' branch)
the test doesn't seem to pass ?!
2025-11-04T04:38:10.6776687Z FAIL: tests/tac/tac-2-nonseekable
2025-11-04T04:38:10.6776753Z =================================
2025-11-04T04:38:10.6776756Z
2025-11-04T04:38:10.6776872Z FAIL tests/tac/tac-2-nonseekable.sh (exit status: 1)
GNU testsuite comparison:
Skipping an intermittent issue tests/tail/overlay-headers (passes in this run but fails in the 'main' branch)
GNU testsuite comparison:
Congrats! The gnu test tests/tac/tac-2-nonseekable is no longer failing!
GNU testsuite comparison:
Congrats! The gnu test tests/tac/tac-2-nonseekable is no longer failing!
GNU testsuite comparison:
Skip an intermittent issue tests/misc/tee (fails in this run but passes in the 'main' branch)
Congrats! The gnu test tests/tac/tac-2-nonseekable is no longer failing!
GNU testsuite comparison:
Congrats! The gnu test tests/tac/tac-2-nonseekable is no longer failing!
GNU testsuite comparison:
Skipping an intermittent issue tests/tail/overlay-headers (passes in this run but fails in the 'main' branch)
Congrats! The gnu test tests/tac/tac-2-nonseekable is no longer failing!
Does this make it change compatibility for when the input is /dev/null ?
GNU testsuite comparison:
Skipping an intermittent issue tests/tail/overlay-headers (passes in this run but fails in the 'main' branch)
GNU testsuite comparison:
Skipping an intermittent issue tests/tail/overlay-headers (passes in this run but fails in the 'main' branch)