* test: implement -r/-w/-x on Windows
* test: fix clippy map-then-unwrap_or lint for Windows executable check
Replace `.map(...).unwrap_or(false)` with `.is_some_and(...)` to satisfy
the `clippy::option_map_unwrap_or` lint on Windows targets.
---------
Co-authored-by: Nihal Ajayakumar <nihal.ajayakumar@gmail.com>
I found the logic a little difficult to understand, and the
comment probably doesn't match what `-N` is supposed to do?
Intead, let's just manually set mtime and atime.
Hopefully this helps clear up Android flakiness in #7570. Or at
least understand better what is going on.
* test: add < and > operators for string comparison
Fixes#7254.
* Add more tests for string inequality
* Use match in place of if/elseif block
Co-authored-by: Daniel Hofstetter <daniel.hofstetter@42dh.com>
* Change test name to specify lt/gt operator
---------
Co-authored-by: Daniel Hofstetter <daniel.hofstetter@42dh.com>
* test: -o arg should trigger an error
Should fix tests/test/test-diag.pl
* test: use var directly in string
---------
Co-authored-by: Daniel Hofstetter <daniel.hofstetter@42dh.com>
On some platforms (mostly the BSDs) the test fixture files copied to the
/tmp directory will have a different gid than the current egid (due to
the sticky bit set on the /tmp directory). Fix this before running the
"test" command.
- Use the file modification time instead of the creation time (matches
GNU coreutils documentation)
- Fix direction of comparison (a < b instead of a > b)
- Extend test case to cover both the 0 and 1 exit code cases
* Remove the author copyright notices
Rational:
* not maintained
* does not reflect reality
* don't provide any value (the info can be found in the git log)
* we don't have rules to update them
(ex: should you update it after one line, two lines, etc)
Co-authored-by: Daniel Hofstetter <daniel.hofstetter@42dh.com>
Summary of changes in tests/util:
* Introduce global constant TESTS_BINARY holding the path to `coreutils`
* Implement running an arbitrary command in a sh or cmd shell per default.
* Implement std::fmt::Display for UCommand.
* Change usages of UCommand::util_name from &Option<OsStr> to Option<OsStr>
* `UCommand::new_from_tmp`: Use OsStr directly instead of TempDir -> String -> OsStr
* Collect arguments in `UCommand::args` field
* Build environment variables in `UCommand` itself instead of `std::process::Command`
* Move building of std::process:Command from fields in UCommand to own method `build`
* Remove assertions of UCommand::has_run in arg, args and env.
Summary of changes in tests/by-util:
* Remove usages of UCommand::raw. Fix tests to use UCommand::to_string.
* test_test: Adjust test_invalid_utf8_integer_compare to use `UCommand::args`
* test_chmod: run_single_test
* test_pwd: symlinked_env
* test_cp:
Fix the usage of &Option<OsStr> in `test_src_base_dot`
Refactor test_src_base_dot to not use UCommand::new but ts.ucmd() instead