Commit graph

219 commits

Author SHA1 Message Date
Jan Scheer
bfa8a2a068
tests/util: add more wrappers for common file handling tasks
truncate, rename, remove, copy, rmdir, etc.
2021-10-19 01:12:12 +02:00
Jeffrey Finkelstein
9e21d26b7c tests: add template string to assert! statements
Add missing "{}" template strings to `assert!()` statements.
2021-10-11 16:51:14 -04:00
Sylvestre Ledru
00de952592 Fix various 'if_then_panic' clippy warnings 2021-10-10 09:57:39 +02:00
Jan Scheer
e9371dc57d
common/util: fix parsing of coreutil version
For the CICD on macOS, this fixes:

```
---- common::util::tests::test_check_coreutil_version stdout ----
---- common::util::tests::test_expected_result stdout ----
thread 'common::util::tests::test_expected_result' panicked at
'byte index 4 is out of bounds of `9.0`', tests/common/util.rs:1172:41
```
2021-10-02 00:58:04 +02:00
Jan Verbeek
0a3785bf84 whoami: Run tests on Windows 2021-09-14 14:13:58 +02:00
Sylvestre Ledru
450a3faf9f
Add to the spell ignore list 2021-09-13 12:29:28 +02:00
Jan Scheer
deedb73bcb
tests/common: make call to host_name_for idempotent
This fixes an issue on macOS/bsd where multiple calls
to `host_name_for` each added a prefix 'g'.
The issue led to some tests being skipped because `util_name` was
renamed to e.g. "ggid" instead of "gid".
2021-09-13 12:28:47 +02:00
Roy Ivy III
4da46d93c7 tests ~ fix tests for new execution_phrase!() and usage phrasing 2021-08-14 14:01:34 +02:00
Jeffrey Finkelstein
2a4c0a867a tests: better arg names in link helper functions
Change the argument names in

* `AtPath::hard_link()`,
* `AtPath::symlink_file()`, and
* `AtPath::symlink_dir()`,

from `src` and `dest` to `original` and `link` to match the arguments of
the corresponding functions from the Rust standard library. For example,
see `std::os::unix::fs::symlink()`.
2021-08-01 19:50:58 -04:00
Sylvestre Ledru
caf984bd55 fix various clippy issues 2021-07-11 11:22:33 +02:00
Jan Scheer
14b348dd4b
tests: fix tests for CICD environment 2021-07-08 11:17:18 +02:00
Jan Scheer
abc59fbe85
tests/common: refactor: use TestScenario instead of util_name for expected_result() 2021-07-07 22:46:16 +02:00
Jan Scheer
735ec4014e
test_who: refactor use expected_result from common/util.rs 2021-07-07 17:26:59 +02:00
Jan Scheer
c447863c8d
tests/common: refactor to reduce duplicate code
* move fn expected_result to common/util.rs
* move fn check_coreutil_version to common/util.rs
* move fn whoami to common/util.rs
* move macro unwrap_or_return to common/macros.rs
* add documentation
* add tests
2021-07-07 14:59:14 +02:00
Michael Debertol
98088db9ff tests: add _any functions
This should make it easier to write tests that could have different
valid outputs depending on timing.
2021-06-12 18:03:00 +02:00
Michael Debertol
8e7eedebe7 tests: take slices in stdout_is_fixture 2021-06-12 18:03:00 +02:00
Jan Scheer
ae03b09c6d tests/util: add CmdResult::new() 2021-06-11 09:08:14 +02:00
Roy Ivy III
7df5acc2dc tests ~ fix cargo clippy complaint (*allow* clippy::manual_strip; with FixME/ToDO)
- replace with the included/noted code when MSRV includes a stabilized `String::strip_prefix()`
2021-06-06 19:28:25 -05:00
Michael Debertol
e5c4681e04 tests: add the ability to set resource limits 2021-06-02 19:21:12 +02:00
Sylvestre Ledru
badf7aacb7
Merge pull request #2300 from tertsdiepraam/pr
Implement `pr` (resurrection of the resurrected PR)
2021-05-31 21:14:57 +02:00
Roy Ivy III
4e20dedf58 tests ~ refactor/polish spelling (comments, names, and exceptions) 2021-05-31 08:23:57 -05:00
Terts Diepraam
7690dc018f Merge branch 'master' into pr 2021-05-31 15:23:06 +02:00
Terts Diepraam
b0bf3e7e0f pr: rustfmt test_pr.rs and utils.rs 2021-05-29 19:34:17 +02:00
Terts Diepraam
bc1870c0a7 Merge branch 'master' into pr 2021-05-29 19:21:31 +02:00
Jan Scheer
3aeccfd802 fix a lot of clippy warnings 2021-05-29 15:11:22 +02:00
Terts Diepraam
0487360507 pr: make tests compile again 2021-05-29 14:30:30 +02:00
Sylvestre Ledru
9442f26fdb
Merge pull request #2283 from Mikadore/master
Closing #1916 - Concluding the test refactor
2021-05-28 22:36:47 +02:00
Mikadore
29f6dd1f35 Fixed warning 2021-05-27 16:55:14 +02:00
Mikadore
5e1d52d4be cargo-fmt :DDD 2021-05-26 22:20:16 +02:00
Mikadore
64598d9e26 Closing #1916 2021-05-26 22:15:28 +02:00
Jan Scheer
afb1b9efb4 tests/util: add AtPath::hard_link 2021-05-26 12:53:11 +02:00
Jeffrey Finkelstein
eeef8290df head: display errors for each input file
Change the behavior of `head` to display an error for each problematic
file, instead of displaying an error message for the first problematic
file and terminating immediately at that point. This change now matches
the behavior of GNU `head`.

Before this commit, the first error caused the program to terminate
immediately:

    $ head a b c
    head: error: head: cannot open 'a' for reading: No such file or directory

After this commit:

    $ head a b c
    head: cannot open 'a' for reading: No such file or directory
    head: cannot open 'b' for reading: No such file or directory
    head: cannot open 'c' for reading: No such file or directory
2021-05-17 08:19:47 -04:00
rethab
231bb7be93
Migrate mknod to clap, closes #2051 (#2056)
* mknod: add tests for fifo

* mknod: add test for character device
2021-05-05 22:59:40 +02:00
Christopher Regali
368e984fac
Change unchecked unwrapping to unwrap_or_default for Args-trait (#1845) (#1852)
* Change unchecked unwrapping to unwrap_or_default for argument parsing (resolving #1845)

* Added unit-testing for the collect_str function on invalid utf8 OsStrs

* Added a warning-message for identification purpose to the collect_str method.

* - Add removal of wrongly encoded empty strings to basename
- Add testing of broken encoding to basename
- Changed UCommand to use collect_str in args method to allow for integration testing of that method
- Change UCommand to use unwarp_or_default in arg method to match the behaviour of collect_str

* Trying out a new pattern for convert_str for getting a feeling of how the API feels with more control

* Adding convenience API for compact calls

* Add new API to everywhere, fix test for basename

* Added unit-testing for the conversion options

* Added unit-testing for the conversion options for windows

* fixed compilation and some merge hiccups

* Remove windows tests in order to make merge request build

* Fix formatting to match rustfmt for the merged file

* Improve documentation of the collect_str method and the unit-tests

* Fix compilation problems with test

Co-authored-by: Christopher Regali <chris.vdop@gmail.com>
Co-authored-by: Sylvestre Ledru <sylvestre@debian.org>
2021-04-25 23:28:42 +02:00
Michael Debertol
2084c3ddf3 tests: show pretty diffs for assertion failures
- All assert_eq in tests/common/util.rs now print a pretty diff on test
failures.
- {stdout, stderr}_is_fixture now compare the expected output and the
fixture as Strings, which leads to more usable diffs.
2021-04-24 16:43:13 +02:00
Sylvestre Ledru
8ccc6ade61
Merge branch 'master' into split-wsl-detection 2021-04-24 10:24:13 +02:00
Jan Scheer
646c6cacbc refactor tests (#1982) 2021-04-23 02:28:46 +02:00
Gilad Naaman
c5d7f63b3c Make CmdResult::code private 2021-04-17 18:50:41 +03:00
Gilad Naaman
0d1946a5d2 cksum: Remove direct usage of CmdResult fields in tests 2021-04-17 15:08:23 +03:00
Sylvestre Ledru
fc057b816b
Merge branch 'master' into split-wsl-detection 2021-04-17 10:22:54 +02:00
Sylvestre Ledru
7ae5f1d751
Merge pull request #2054 from rethab/improve-cksum-test
allow ignoring stdin write errors in tests & fix flaky test
2021-04-17 00:49:17 +02:00
Gilad Naaman
4695667c7c Added sanity checks for test utils 2021-04-11 02:28:47 +03:00
Gilad Naaman
cd3dba2481 Added some tests utils for future refactoring 2021-04-11 02:27:16 +03:00
Árni Dagur
eb4971e6f4
cat: Unrevert splice patch (#2020)
* cat: Unrevert splice patch

* cat: Add fifo test

* cat: Add tests for error cases

* cat: Add tests for character devices

* wc: Make sure we handle short splice writes

* cat: Fix tests for 1.40.0 compiler

* cat: Run rustfmt on test_cat.rs

* Run 'cargo +1.40.0 update'
2021-04-10 22:19:53 +02:00
Aleksandar Janicijevic
18191f9212
shred: Implemented --force option (#2012) 2021-04-10 10:41:59 +02:00
Sylvestre Ledru
844e318a67
Merge branch 'master' into pr 2021-04-09 22:02:25 +02:00
Reto Hablützel
d51ca40986 allow ignoring stdin write errors in tests
* if we want to test an irregular scenario, ignoring errors caused by
    writing to stdin of the command can be uselful.

  * for example, when writing some text to stdin of cksum in a scenario
    where it doesn't consume this input, the child process might have
    exited before the text was written. therefore, this test sometimes
    fails with a 'Broken pipe'.
2021-04-09 11:16:36 +02:00
Terts Diepraam
c65483f4be tests: improve docstrings a bit 2021-04-07 11:48:21 +02:00
ReggaeMuffin
b1fcb621a8
wsl2: wsl no longer differs in output
refactor `is_wsl` to `is_wsl_1` and `is_wsl_2`

On my tests with wsl2 ubuntu2004 all tests pass without special cases

I moved wsl detection into uucore so that it can be shared instead of duplicated

I moved `parse_mode` into uucode as it seemed to fit there better and anyway requires libc feature
2021-04-06 10:58:49 +01:00
ReggaeMuffin
2eb32d845e
chores: run cargo +1.40.0 fmt
Apparently fmt from 1.40.0 is a bit more strict in some places

Let me know if this is worthwhile merging :)
2021-04-02 10:56:49 +01:00
Sylvestre Ledru
dcbcf01665 Fix some clippy warnings 2021-04-01 23:42:30 +02:00
paulotten
090d29496a
Issue #1622 port du to windows (#1788)
* Issue #1622 port `du` to windows

* Attempt to support Rust 1.32

Old version was getting "attributes are not yet allowed on `if`
expressions" on Rust 1.32

* Less #[cfg]

* Less duplicate code.

I need the return and the semicolon after if otherwise the second #[cfg]
leads to unexpected token complilation error

* More accurate size on disk calculations for windows

* Expect the same output on windows as with WSL

* Better matches output from du on WSL

* In the absence of feedback I'm disabling these tests on Windows.
They require `ln`. Windows does not ship with this utility.

* Use the coreutils version of `ln` to test `du`

`fn ccmd` is courtesy of @Artoria2e5

* Look up inodes (file ids) on Windows

* One more #[cfg(windows)] to prevent unreachable statement warning on linux
2021-04-01 23:16:47 +02:00
Mikadore
b8079098f2 fixed panic! formatting 2021-03-31 13:30:06 +02:00
Mikadore
96643d6f91
fix #1970 (#1980) 2021-03-31 03:54:16 -07:00
Mikadore
a57f17ac5b
Expand CmdResult's API (#1977) 2021-03-31 02:25:23 -07:00
Ricardo Iglesias
5f17719a59
Implemented --indicator-style flag on ls. (#1907)
* Implemented --indicator-style flag on ls.

* Rust fmt

* Grouped indicator_style args.

* Added tests for sockets and pipes.

Needed to modify util.rs to add support for pipes (aka FIFOs).

* Updated util.rs to remove FIFO operations on Windows

* Fixed slight error in specifying (not(windows))

* Fixed style violations and added indicator_style test for non-unix systems
2021-03-29 13:10:13 +02:00
Tilak Patidar
b742230dbb pr: fix page ranges
pr: Fix page ranges
2021-03-26 14:11:14 +03:00
tilakpatidar
629236bd39 pr: add first test 2021-03-26 14:11:14 +03:00
Neculai Balaban
93c7cbe65e documentation for usual macros
- removed repeat_str helper as it's now part of std
- added docstrings for usual macros and test utils
2021-03-22 12:13:38 +02:00
Jan Scheer
47f50a0f5f
tests/utils: fixed mode for write (#1802)
added `log_info`
2021-03-12 22:26:27 +01:00
Ali
5ced3a670b
paste: cleanup multi-stdin support (#1803)
cleaner impl for multi-stdin support
2021-03-12 13:26:09 +01:00
Alex Lyon
5431e947bc
uucore: process: fix exit status processing (#1743)
* uucore: process: fix exit status processing

* tests: timeout: check whether subcommand exit codes are returned
2021-02-23 10:21:01 +01:00
Sylvestre Ledru
992c113f09 Remove some old code 2021-01-22 09:40:38 +01:00
Sylvestre Ledru
e331186fee
unbreak build with rustc 1.32: force tempfile 3.1.0 (#1695) 2021-01-19 08:15:53 +01:00
Felipe Lema
88911be6e0
--filter argument for split (#1681) 2021-01-18 14:42:44 +01:00
Roy Ivy III
cbac6cc903 tests ~ increase test detail to diagnose MacOS hostname test failure 2020-06-14 23:38:30 -05:00
Roy Ivy III
407d455b12 tests ~ add is_ci() test 2020-06-14 12:20:31 -05:00
Sylvestre Ledru
ac34d136f2 refactor(global): Move from tempdir to tempfile:
* the crate has been deprecated
2020-06-09 11:30:19 +02:00
Roy Ivy III
039638de0e tests ~ use CARGO_PKG_NAME as name of binary used for testing 2020-05-29 22:59:47 -05:00
Roy Ivy III
75f05df119 refactor/polish ~ fix cargo clippy complaints (redundant_static_lifetimes) 2020-04-11 18:50:10 -05:00
Roy Ivy III
5af8503a5e cargo fmt 2020-01-28 00:05:06 -06:00
Roy Ivy III
14c3f3aa17 tests ~ fix WSL testing
+ ToDO added ~ when possible, test under WSL2 and differentiate/liberalize if possible
2020-01-27 21:33:47 -06:00
Roy Ivy III
d0f6f3d07e tests/refactor ~ change output test macros to 'actual = expected' format
- rust usually uses `assert_eq!(ACTUAL, EXPECTED)`
- ref: https://users.rust-lang.org/t/assert-eq-expected-and-actual/20304/3 @@ https://archive.is/xPp9R
2020-01-27 21:33:47 -06:00
Roy Ivy III
b4b0ee40d7 refactor/polish ~ convert to try! to ? syntax
- convert to newer `?` syntax, fixing compiler warnings

+ requires MinSRV >= v1.13.0

.# [why]

The `?` operator was stabilized in rust v1.13.0.

Warnings requesting conversion from the old `try!` macro to the `?` operator
were introduced in rust v1.39.0.

* ref: <https://github.com/rust-lang/rust/blob/master/RELEASES.md>
2020-01-27 21:33:47 -06:00
Alex Lyon
179de609b5 Replace trim_{left,right} with trim_{start,end} and co. (using Rerast) 2019-05-01 21:14:25 -07:00
Alex Lyon
c7d115b1ad Convert all try!() to ? 2019-05-01 21:14:25 -07:00
Roy Ivy III
f72fff7b42 augment UCommand with #[derive(Debug)] to allow improved test diagnostics 2019-04-29 09:46:15 -05:00
Reto Habluetzel
2d2042c8fc env: reject program with --null, error stderr 2019-04-28 11:17:44 +02:00
Alex Lyon
23f6dbf2d3
Merge pull request #1306 from rinconjc/1235
tests: untrimmed stdout assertion (fix #1235)
2019-04-05 22:22:18 -07:00
Julio Rincon
29c6ad5f6a tests: untrimmed stdout assertion (fix #1235) 2019-02-08 07:54:48 +11:00
Roy Ivy III
f3d43d775a fix ~ correct symlink creation in tests 2019-02-07 08:30:51 -06:00
Alex Lyon
880a4973c1 Format everything using rustfmt 2018-03-12 01:20:58 -07:00
Alex Lyon
e9f32fe170 realpath, relpath, tests: fix build on nightly 2018-01-16 15:11:46 -08:00
knight42
fdbbb08aef tests: expand $OUT_DIR at compile time 2016-12-20 03:28:47 +08:00
knight42
a0ff0f623a Temporary fix for errors in testing
The errors were caused by the missing env $OUT_DIR which should be set by
cargo.

[Related issue](https://github.com/rust-lang/cargo/issues/3368).
2016-12-08 12:36:07 +08:00
Joseph Crail
b3680a5baf Fix clippy warnings 2016-11-25 14:14:46 -05:00
knight42
c277793f38 touch: add test 2016-08-28 07:12:58 +08:00
nathanross
b667fce8ba clone atpath to avoid borrow issue 2016-08-23 08:57:13 -04:00
Nathan Ross
fae1e92767 tests/common: more communicative assertion failure messages
often when stdout is wrong, differences in stderr are
more useful for determining the cause
2016-08-08 02:54:22 -04:00
Knight
cfc28ebc05 tests: extern crates in separated test modules 2016-08-07 01:12:19 +08:00
Nathan Ross
569cd162d3 tests: refactor conventional TestScenario usage
Updates to individual integration tests

  - use proposed conventional approach to beginning tests

  - use new convenience functions for using fixtures

  - use new names for TestScenario

Updates to integration test modules

  - add proposed conventional module-level functions

Updates to test/common/util.rs

  - rename TestSet, and its methods, for semantic clarity

  - create convenience functions for use of fixtures

  - delete convenience functions obsoleted by new conventions
2016-08-01 13:42:00 -04:00
Nathan Ross
eb976214d8 tests/common: use more idiomatic asserts 2016-07-17 13:33:03 -04:00
Nathan Ross
fa11f277ea tests/common: document more structs and functions of util.rs 2016-07-17 05:20:33 -04:00
Knight
e486fefa0f test::common::util::read_size: prolong the sleep 2016-06-17 22:45:35 +08:00
Joseph Crail
56c9ccc347 tests/common: remove prefixed chars on Windows 2016-05-22 22:54:45 -04:00
Joseph Crail
a7a10f357a tests: remove scoped files
Scoped files were deprecated by scoped temporary directories used by the
test harness.
2016-05-22 15:31:02 -04:00
Joseph Crail
8d42cecc5f tests: remove unused comment 2016-05-22 15:15:57 -04:00
Joseph Crail
6652e6b57d tests: un-hardcode executable artifact 2016-05-22 15:10:46 -04:00
Joseph Crail
89b600628d tests: move macros into separate module 2016-05-22 15:10:06 -04:00
Heather
bdc1ca7426 Merge pull request #882 from jbcrail/fix-windows-build
Improve Windows build
2016-05-22 16:02:03 +04:00
ibabushkin
d504ae18c9 pathchk implemented (see #841) (#860)
* Added pathchk
2016-05-22 15:59:57 +04:00
Joseph Crail
7ef4bb37a8 tests: consolidate into one crate
The main motivation is to move toward running those tests for a specific
target, that is, if a test won't run on Windows, then we shouldn't build
it. This was previously the default behavior and prevented a successful
run on AppVeyor.

I borrowed this pattern from the tests in the Cargo project.
2016-05-22 03:46:54 -04:00
Valentin Lorentz
8ff308740c Fix test on Rust Stable.
https://github.com/rust-lang/rust/issues/32801
2016-04-07 20:54:22 +02:00
Valentin Lorentz
e673a102b6 tail: Add test for tail -f. 2016-04-03 11:47:33 +02:00
Valentin Lorentz
4ba6ea7aad tests: Move part of UCommand::run to a new function 2016-04-03 11:46:33 +02:00
Valentin Lorentz
fe5bc47971 tests: Simplify logic of UCommand::run. 2016-04-03 11:46:33 +02:00
Joseph Crail
91df9b14da tests: remove unused method 2016-03-28 23:25:50 -04:00
Joseph Crail
7d103a0a64 tests: fix whitespace 2016-03-28 23:25:26 -04:00
Joseph Crail
1fecba3226 tests/{readlink, realpath}: fix tests on Windows
I fixed the tests that assumed paths used a Unix directory separator.
2016-03-28 23:24:40 -04:00
Heather
c954b01aa3 Merge pull request #854 from fitzgen/tests-for-tail-bytes
Miscellaneous `tail` related commits
2016-03-28 09:05:48 +04:00
Nick Fitzgerald
a629bb3076 tests: Create the ScopedFile type for temporary files in tests
This commit adds the `ScopedFile` type, which wraps and derefs to a `File`. When
a `ScopedFile` is dropped, it removes the underlying file from the
filesystem. This is useful for temporary, generated files in tests.
2016-03-27 14:34:59 -07:00
Joseph Crail
ec14be84aa tests/pwd: fix broken Windows test
Due to canonicalize()'s use of GetFinalPathNameByHandleW() on Windows,
the resolved path starts with '\\?\' to extend the limit of a given path
to 32,767 wide characters.

To address this issue, we remove this prepended string if available.
2016-03-27 03:28:55 -04:00
Nathan Ross
5e764ecf6e more ergonomic testing 2016-02-18 13:24:36 -05:00
Leonid Shalupov
1ae82193f0 tests: do not remove %SYSTEMROOT% from environment variables, it's required to initialize crypto provider (which is required for std::rand) 2016-02-14 16:34:39 +01:00
Arcterus
49d0815588 tests: fix tests that broke when using a symlinked /tmp 2016-01-10 02:50:39 -08:00
Arcterus
d9ad0b185a tests: fix tests that were failing on OS X 2016-01-10 00:09:05 -08:00
Michael Gehring
830ca8c04d tests: add UCommand::env() 2016-01-03 14:24:15 +01:00
Nathan Ross
83295f1e08 appveyor and windows testing tooling updates 2015-12-23 22:59:04 -05:00
Nathan Ross
a21c54e2cd rewrite tests for cargo compat, decoupled directory, output handling 2015-11-23 02:04:15 -05:00