Commit graph

228 commits

Author SHA1 Message Date
Sylvestre Ledru 09e53f3d2d tests: fix some clippy warnings 2024-05-25 09:06:16 +02:00
sreehari prasad 3c096ee6ac
util: added umask manipulation (#6404)
Co-authored-by: Terts Diepraam <terts.diepraam@gmail.com>
2024-05-19 21:56:41 +02:00
Jadi 19d42c0339 Disabling xattrs function and tests on OpenBSD
The test_compare_xattrs test fails on OpenBSD because OpenBSD does
not support xattrs. Disabling this function and its test for
target_os = openbsd resolves the issue.

Fixes #6348
2024-05-05 09:08:35 +03:30
Ulrich Hornung 537941b676 config terminal simulation for specific stdios only 2024-04-23 19:56:17 +02:00
Krysztal112233 a61761f090
util: fix compile failed on Windows.
Use  `std::path::MAIN_SEPARATOR_STR` instead of `std::path::MAIN_SEPARATOR`
2024-03-23 17:13:07 +08:00
Krysztal112233 6f5dfa3c46
lint: fix unused_imports of util.rs 2024-03-23 17:02:32 +08:00
Krysztal112233 1484d06887
lint: fix clippy::manual_main_separator_str for util.rs on Windows cfg. 2024-03-23 16:56:43 +08:00
Krysztal112233 d21dc125d0
lint: fix clippy::suspicious_open_options of project. 2024-03-23 16:49:35 +08:00
Ulrich Hornung c62ba559d0 env: support string args by "-S", "-vS" or "--split-strings" 2024-03-19 00:45:05 +01:00
Ulrich Hornung db142f9449
use std::command::pre_exec() to set limits on child before exec 2024-03-08 20:30:34 +01:00
Daniel Hofstetter d651063de3 tests/common/util.rs: add cfg(feature = "env") 2024-03-03 15:02:19 +01:00
Ulrich Hornung d8b3b41850
added configurable terminal size 2024-02-25 21:47:07 +01:00
Ulrich Hornung a4d5defeef
simulate terminal utility (squash) 2024-02-25 18:15:15 +01:00
Daniel Hofstetter 04ebd863a6 clippy: fix warnings introduced by Rust 1.76 2024-02-08 16:56:01 +01:00
Sylvestre Ledru 238fb776ad test: add a function to compare the xattr between two files.
used by cp & mv (at least)
2024-01-16 13:12:02 +01:00
Samuel Tardieu 05d85618e3 test: use clearer expression for CI testing
`bool::is_ok_and()` is available in Rust 1.70.0 and above, which is compatible
with the current MSRV.
2024-01-01 21:04:13 +01:00
Benjamin Bara 616c3f4a7f util: extend run_ucmd_as_root for stdin/stdout
This enables to give path to files (as str) which are then used as either stdin or stdout.
2023-09-24 10:00:10 +02:00
Terts Diepraam c3f9e19a3b all: normalize license notice in all *.rs files 2023-08-24 12:21:09 +02:00
Sylvestre Ledru 0b9c829bce
Merge pull request #5182 from sylvestre/clippy_
Fix some of the recent clippy warnings
2023-08-21 16:21:02 -04:00
Sylvestre Ledru bfca6bf70f Add license headers on all files 2023-08-21 10:49:27 +02:00
Sylvestre Ledru 7c9f4ba92a Fix some clippy warnings 2023-08-21 08:41:40 +02:00
John Shin b34e7f7bf6 du: directories have apparent size of 0 2023-06-25 15:56:57 -07:00
Sylvestre Ledru 47e61f064c Fix a comment in the rustdoc 2023-04-20 23:22:05 +02:00
Daniel Hofstetter f96f2fae5b tests: fix unused import "rstest::rstest" warning 2023-03-26 11:53:20 +02:00
Sylvestre Ledru a4a290caf2
Merge branch 'main' into default-env-for-tests 2023-03-24 20:33:34 +01:00
Miles Liu 81a4e8fb7d
Remove keep_env from the test framework 2023-03-24 14:25:37 +08:00
Terts Diepraam 4dd88680eb tests: define default env vars for test commands
We now run each command with TZ=UTC and LC_ALL=C to ensure consistent
behavior independent from external timezone and locale settings. These
can still be overridden with other values if necessary.
2023-03-23 18:15:05 +01:00
daviddwk c24194f454 util: fix unnecessary boolean not operations 2023-03-22 17:13:50 +01:00
jfinkels 59d34ce667
Merge branch 'main' into dd-seconds-precision-3 2023-03-19 13:29:14 -04:00
Sylvestre Ledru d42b4883e1 Fix some simply clippy warnings
With:
`cargo +nightly clippy --features unix --allow-dirty --fix -- -W clippy::pedantic`
2023-03-18 14:36:49 +01:00
Jeffrey Finkelstein 2f56536637 dd: fix precision for display of total time spent
Improve the display of the total time spent transferring bytes so that
the number of seconds is displayed using the `%g` format specifier as
in `printf`. This matches the behavior of GNU `dd`.

Before this commit, the precision was always set to one digit after
the decimal point. For example,

    $ dd count=100000 if=/dev/zero of=/dev/null
    100000+0 records in
    100000+0 records out
    51200000 bytes (51 MB, 49 MiB) copied, 0.2 s, 268.1 MB/s

After this commit, the precision increases dynamically as the duration
decreases. For example,

    $ dd count=100000 if=/dev/zero of=/dev/null
    100000+0 records in
    100000+0 records out
    51200000 bytes (51 MB, 49 MiB) copied, 0.1019 s, 507 MB/s
    $ dd count=1000 if=/dev/zero of=/dev/null
    1000+0 records in
    1000+0 records out
    512000 bytes (512 kB, 500 KiB) copied, 0.002663 s, 256 MB/s
    $ dd count=10 if=/dev/zero of=/dev/null
    10+0 records in
    10+0 records out
    5120 bytes (5.1 kB, 5.0 KiB) copied, 0.000182 s, 5.1 MB/s
2023-03-11 22:37:43 -05:00
Sylvestre Ledru 49eb9a2e91
Merge branch 'main' into cp-pathbuf 2023-03-05 16:22:21 +01:00
Thayne McCombs 17f9507e17 Add tests for non-utf8 2023-02-21 22:58:39 -07:00
Joining7943 1c230fd779 tests/util: Refactor UCommand and TestScenario.
Summary of changes in UCommand:
* Extend UCommand by builder methods and simplify methods in TestScenario
* Simplify code structures where possible. Add documentation.
* Store bin_path as PathBuf and util_name as String in all structs
* Remove UCommand::util and make bin_path, temp_dir private
* Rename UCommand::with_limit -> UCommand::limit

Summary of changes in TestScenario:
* Rename some parameters in TestScenario methods to be more descriptive
* Remove ucmd_keepenv, cmd_keepenv from TestScenario. Use UCommand::keep_env instead.
2023-02-18 23:38:20 +01:00
Joining7943 fdf0f96a01 tests/util: Restructure UCommand to run in shell per default. Introduce constant TESTS_BINARY.
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
2023-02-17 17:39:33 +01:00
Joining7943 2b5b0c82c1 tests/util: Bump rlimit version to 0.9.1 to be able to use prlimit on android 2023-02-17 17:39:30 +01:00
Joining7943 f610f33aa7
tests/util: Don't trim output in CmdResult::stdout_matches and stdout_does_not_match (#4304)
* tests/util: Fix documentation of UCommand::stderr_only and usage_error

* tests/util: Remove trimming from CmdResult::stdout_matches and stdout_does_not_match. Fix tests.

The tests are fixed to match the trailing newline instead of ignoring it.
2023-02-16 15:33:33 +01:00
Joining7943 3a613cbc7f tests/util: Fix path resolution of test executable 2023-02-14 11:22:49 +01:00
Daniel Hofstetter f6b646e4e5 clippy: fix warnings introduced with Rust 1.67.0 2023-01-27 17:37:56 +01:00
Joining7943 78a381032b tests/util: Improve assertion messages of CmdResult::stderr_is_bytes, stdout_is_bytes 2023-01-22 14:56:19 +01:00
Joining7943 1fadeb43b2 tests/util: Do not trim stderr in CmdResult::stderr_is. Add method stderr_trimmed_is.
Fix tests assert whitespace instead of trimming it. Disable some tests in `test_tr` because `tr`
produces too many newlines.
2023-01-22 14:56:19 +01:00
Joining7943 7c0ed0340b tests/util: Add stdout_check, stdout_str_check ... to CmdResult to run arbitrary assertions 2023-01-22 14:56:19 +01:00
Joining7943 c2ad54fe09 tests/util: Add methods in CmdResult to assert the received signal on unix systems
Add tests for these signal methods. Include `signals` feature in Cargo.toml uucore dev-dependencies.
2023-01-22 14:56:19 +01:00
Joining7943 19db042022 tests/util: Use ExitStatus instead of code, success in CmdResult. Rewrite tests for CmdResult 2023-01-22 14:48:23 +01:00
Joining7943 37e06edadc tests/util: Introduce CmdResult::stdout_str_apply ... to preprocess stdout, stderr before asserting 2023-01-22 14:48:23 +01:00
Joining7943 9b35c5d5c1 tests/util: Use Stdio::null as default in UCommand for Child stdin instead of Stdio::piped 2023-01-03 16:30:08 +01:00
Terts Diepraam 44ea43f058 tests: remove status_code, which is the same as code_is 2023-01-01 17:25:59 +01:00
Terts Diepraam 267a22e12c add track_caller attribute to assertion functions 2023-01-01 15:25:37 +01:00
Joining7943 09c04d9f3f tests: Set timeout for tests which would fail with the default timeout in test_factor, test_sort 2022-12-17 21:55:01 +01:00
Joining7943 1d7447d42e tests/util: Add setting timeout for UChild::kill and run and wait methods in UCommand and UChild.
Additional notes:
* Set default timeout to 30s
* Fix UChild::kill to always fail on timeout if zero
2022-12-17 21:53:39 +01:00