* Support ls --dired
* stat-failed.sh: update of the test - we have a small difference
* ls --dired: address some of the comments
* fix warnings
* use unwrap()
* Improve test
Co-authored-by: Daniel Hofstetter <daniel.hofstetter@42dh.com>
* Simplify test
Co-authored-by: Daniel Hofstetter <daniel.hofstetter@42dh.com>
* Remove a word from the spell ignore
Co-authored-by: Daniel Hofstetter <daniel.hofstetter@42dh.com>
* remove duplication of the spell ignore
Co-authored-by: Daniel Hofstetter <daniel.hofstetter@42dh.com>
* rustfmt
---------
Co-authored-by: Daniel Hofstetter <daniel.hofstetter@42dh.com>
For a new contributor, the message given by `utils/build-gnu.sh` is
fairly confusing - it starts with several lines of noise (showing
variables that are set in the script) followed by an error about missing
"GNU" and a `git` command string.
This commit changes the script to explicitly instruct the user to run
the `git clone` command. Since the GNU coreutils repository is probably
missing for new developers, this error is shown if the repository is
missing without including VARIABLE=value lines that are not actionable
yet.
nextest does build because of:
2023-04-29T08:03:36.5411530Z Compiling log v0.4.17
2023-04-29T08:03:36.5412100Z error[E0432]: unresolved import linux_raw_sys::ioctl
2023-04-29T08:03:36.5412710Z --> /data/data/com.termux/files/home/.cargo/registry/src/github.com-1285ae84e5963aae/rustix-0.37.17/src/backend/libc/io/syscalls.rs:384:24
2023-04-29T08:03:36.5413150Z |
2023-04-29T08:03:36.5413830Z 384 | use linux_raw_sys::ioctl::EXT4_IOC_RESIZE_FS;
2023-04-29T08:03:36.5414380Z | could not find ioctl in linux_raw_sys
2023-04-29T08:03:36.5414590Z
2023-04-29T08:03:36.5414840Z For more information about this error, try rustc --explain E0432.
2023-04-29T08:03:36.5415280Z error: could not compile rustix due to previous error
2023-04-29T08:03:36.5415730Z warning: build failed, waiting for other jobs to finish...
https://github.com/nextest-rs/nextest/issues/862
* tail: fix race condition (fix#3765)
There exists a race condition (RC) that can occur if changes to a path
happen after the initial print loop in `uu_tail()`, but before the
path is added to the notify-Watcher thread in `follow()`.
To minimize the window where the RC can occur, this moves starting the
Watcher thread and adding paths to it from `follow()` to the initial
print loop in `uu_tail()`.
Additionally, to make sure the RC cannot happen in
"gnu/tests/tail-2/F-headers.sh", the error message that is used as a trigger
in this test, is delayed until the path is added to the Watcher thread.
* build-gnu: remove workarounds for tail
Remove workarounds for "tests/tail-2/F-headers.sh" which are
(presumably) no longer needed because of the race condition fix.
* build-gnu: remove workarounds for tail
Remove workarounds for "tests/tail-2/F-headers.sh" which are
(presumably) no longer needed because of the race condition fix.
* tail: refactor to minimize chances of RC
Move "adding paths to Watcher thread" to its own loop and run this loop
before the initial tail-print-loop in order to minimize the window for
race conditions.
* tail: reduce CPU load for polling
This reduces the CPU load for polling drastically (from ~80% down to ~5%)
by removing/fixing several previous workarounds related to polling,
while still passing all related GNU test-suite checks.
* set Notify::PollWatcher delay to: sleep_sec/10 instead of
sleep_sec/100
* set recv_timeout to sleep_sec instead of sleep_sec/100
* remove the manual polling of watched files
Bugs:
* fix an issue with headers to consistently pass
"test_follow_name_retry_headers" and "gnu/tests/tail-2/overlay-headers.sh"
Code clean-up and refactor
* make fields of struct FileHandling private (and add getters/setters)
to ensure that the paths are absolute and match the paths returned by
Notify::Events
* replace calls to "crash!" with "return USimpleError"
* clean-up formatting