Commit graph

4760 commits

Author SHA1 Message Date
Sylvestre Ledru 33fb491c6e freebsd/circus: update to freebsd 12.2 2021-05-22 11:05:55 +02:00
Sylvestre Ledru 373776e071 freebsd/circus: workaround the timeout
https://github.com/rust-lang/rustup/issues/2774

It is failing currently on:
```
info: installing component 'cargo'
error: error: 'sysinfo not supported on this platform'
```
with 1.52.1
2021-05-22 11:05:41 +02:00
Sylvestre Ledru ddcd6be37a gnu: document how to run the tests 2021-05-22 09:33:17 +02:00
Sylvestre Ledru adaba54026 gnu/ci: move the operations into script to run them locally 2021-05-22 09:33:15 +02:00
Michael Debertol e7da8058dc sort: automatically fall back to extsort
To make this work we make default sort a special case of external sort.

External sorting uses auxiliary files for intermediate chunks. However,
when we can keep our intermediate chunks in memory, we don't write them
to the file system at all. Only when we notice that we can't keep them
in memory they are written to the disk.

Additionally, we don't allocate buffers with the capacity of their
maximum size anymore. Instead, they start with a capacity of 8kb and are
grown only when needed.

This makes sorting smaller files about as fast as it was before
(I'm seeing a regression of ~3%), and allows us to seamlessly continue
with auxiliary files when needed.
2021-05-21 23:09:46 +02:00
Anup Mahindre 31545258ac tests: Fix test_ls_path 2021-05-21 22:24:13 +05:30
Anup Mahindre 414c92eed7 ls: Fix printing paths behavior
For any commandline arguments, ls should print the argument as is (and
not truncate to just the file name)
For any other files it reaches (say through recursive exploration), ls
should print just the filename (as path is printed once when we enter
the directory)
2021-05-21 22:22:28 +05:30
Sylvestre Ledru 73b47b8c76 gnu/ci: install the dep into a separate task 2021-05-21 18:33:05 +02:00
Jan Scheer 0dafbfccca CI-Trigger 2021-05-21 13:30:24 +02:00
Jan Scheer 6ed080cf97 CICD: install GNU coreutils on macOS (Code Coverage) 2021-05-21 12:39:48 +02:00
Jan Scheer 007e0a4e7f who/stat/pinky: adjust tests to be compatible with running on macOS
A lot of tests depend on GNU's coreutils to be installed in order
to obtain reference values during testing.
In these cases testing is limited to `target_os = linux`.
This PR installs GNU's coreutils on "github actions" and adjusts the
tests for `who`, `stat` and `pinky` in order to be compatible with macOS.

* `brew install coreutils` (prefix is 'g', e.g. `gwho`, `gstat`, etc.
* switch paths for testing to something that's available on both OSs,
    e.g. `/boot` -> `/bin`, etc.
* switch paths for testing to the macOS equivalent,
    e.g. `/dev/pts/ptmx` -> `/dev/ptmx`, etc.
* exclude paths when no equivalent is available,
    e.g. `/proc`, `/etc/fstab`, etc.
* refactor tests to make better use of the testing API
* fix a warning in utmpx.rs to print to stderr instead of stdout
* fix long_usage text in `who`
* fix minor output formatting in `stat`

* the `expected_result` function should be refactored
    to reduce duplicate code
* more tests should be adjusted to not only run on `target_os = linux`
2021-05-21 11:55:20 +02:00
Sylvestre Ledru df45b20dc1
Merge pull request #2243 from jfinkels/truncate-min-max
truncate: use min() and max() instead of if/else statements
2021-05-21 10:09:43 +02:00
Sylvestre Ledru 76844dbd56
Merge pull request #2241 from jfinkels/truncate-rustfmt-test
truncate: rustfmt test_truncate.rs file
2021-05-21 10:06:45 +02:00
Sylvestre Ledru d00dabca1c
Merge pull request #2242 from jfinkels/truncate-file-not-found-error
truncate: fix error message for file not found
2021-05-21 10:06:01 +02:00
Jeffrey Finkelstein a23555e857 truncate: fix character used to indicate round up
Fix a bug in which the incorrect character was being used to indicate
"round up to the nearest multiple" mode. The character was "*" but it
should be "%". This commit corrects that.
2021-05-20 23:19:58 -04:00
Jeffrey Finkelstein 17b95246cd truncate: use min() and max() instead of if stmts 2021-05-20 21:24:43 -04:00
Jeffrey Finkelstein fc29846b45 truncate: fix error message for file not found
Change the error message for when the reference file (the `-r` argument)
is not found to match GNU coreutils. This commit also eliminates a
redundant call to `File::open`; the file need not be opened because the
size in bytes can be read from the result of `std::fs::metadata()`.
2021-05-20 20:59:59 -04:00
Jeffrey Finkelstein d30393089f truncate: rustfmt test_truncate.rs file 2021-05-20 20:58:56 -04:00
Sylvestre Ledru b9e99543db
Merge pull request #2234 from chadbrewbaker/fix-cat-random-timeout
dev random blocks on linux
2021-05-20 23:25:11 +02:00
Sylvestre Ledru efb781f59a
Merge pull request #2221 from jfinkels/head-display-multiple-errors-2
head: display errors for each input file instead of terminating at the first error
2021-05-20 23:24:35 +02:00
Sylvestre Ledru ca196a6dad
Merge pull request #2218 from miDeb/sort-chunks
sort: read files as chunks, off-thread
2021-05-20 23:24:02 +02:00
nicoo a0a103b15e factor::table::chunked: Add test (equivalent to the single-number version) 2021-05-20 17:01:33 +02:00
nicoo 998b3c11d3 factor: Make random Factors instance generatable for tests 2021-05-20 17:00:49 +02:00
Sylvestre Ledru 52a7e07b3e
Merge pull request #2226 from nbraud/pin-GNU-tests
CI: Stabilise the version of GNU tests used in CI
2021-05-20 16:30:32 +02:00
Sylvestre Ledru 743db76056
Merge pull request #2238 from jfinkels/truncate-refactor-parse-size
truncate: simplify parse_size() function and correct error message
2021-05-20 08:21:19 +02:00
Jeffrey Finkelstein 63b496eaa8 truncate: refactor parse_size() function
Change the interface provided by the `parse_size()` function to reduce
its responsibilities to just a single task: parsing a number of bytes
from a string of the form '123KB', etc. Previously, the function was
also responsible for deciding which mode truncate would operate in.

Furthermore, this commit simplifies the code for parsing the number and
unit to be less verbose and use less mutable state.

Finally, this commit adds some unit tests for the `parse_size()`
function.
2021-05-19 23:07:11 -04:00
Sylvestre Ledru 0c6a848314
gnu results: also add the date (#2236) 2021-05-19 20:33:28 +02:00
Sylvestre Ledru 34d13324bf
Merge pull request #2233 from sylvestre/gnu
publish the results of the gnu testsuite as a json file too
2021-05-19 11:07:54 +02:00
Chad Brewbaker 9167a4128d
Update test_cat.rs
Refactored to constants
2021-05-19 04:06:46 -05:00
Sylvestre Ledru ddf3c9cfcf
Merge pull request #2235 from jhscheer/fix_clippy_warnings
fix clippy warnings
2021-05-19 09:36:05 +02:00
Jan Scheer 8032c6d750 fix clippy warnings 2021-05-19 01:37:28 +02:00
Sylvestre Ledru 7bf342fa52 publish the results of the gnu testsuite as a json file too 2021-05-18 23:05:49 +02:00
Chad Brewbaker a69cb11de9 Removing debug code 2021-05-18 15:17:07 -05:00
Chad Brewbaker c60d3866c3 dev random blocks on linux 2021-05-18 15:10:51 -05:00
Sylvestre Ledru cacd078a49
Merge pull request #2227 from jfinkels/tail-iocopy-bounded-tail
tail: use std::io::copy() to write bytes to stdout
2021-05-18 20:42:59 +02:00
Sylvestre Ledru de5c1d90db
Merge pull request #2232 from jhscheer/stat_test_refactor
stat: remove unused/duplicate tests
2021-05-18 20:42:33 +02:00
Jan Scheer ce5b852a31 stat: remove unused/duplicate tests 2021-05-18 19:58:33 +02:00
Arijit Dey 1596c65dfd
Downgrade crossterm version 2021-05-18 22:29:59 +05:30
Sylvestre Ledru 3977eb8934
Merge pull request #2229 from jhscheer/issue_2223
tests: add test for issue #2223
2021-05-18 11:32:57 +02:00
Arijit Dey 7a88df9fb4
Fix broken terminal in tests 2021-05-18 12:42:33 +05:30
Jan Scheer 7c7d622d54 tests: add test for issue #2223 2021-05-18 02:00:16 +02:00
Jeffrey Finkelstein bc29645531 tail: fix off-by-one issue for +NUM args
Fix an off-by-one issue for `tail -c +NUM` and `tail -n +NUM` command
line options.
2021-05-17 19:45:42 -04:00
Jeffrey Finkelstein fea1026669 tail: use std::io::copy() to write bytes to stdout 2021-05-17 18:15:39 -04:00
Sylvestre Ledru dc02c36a6a
Merge pull request #2225 from sylvestre/gnu
gh action: fix the GNU testsuite job
2021-05-17 22:51:06 +02:00
Jan Scheer dc93f29fe3 CICD: install GNU coreutils on macOS 2021-05-17 22:22:18 +02:00
Sylvestre Ledru 047d775e5e gh action: fix the GNU testsuite job 2021-05-17 21:24:58 +02:00
nicoo f46b119493 CI: Stabilise the version of GNU tests used in CI
The “GNU tests” task is routinely broken on `master`.
Broken CI is worse than no CI, as it teaches people to ignore errors.

This PR pins the versions of the GNU testsuite (and GNUlib) used,
to current stable versions, so this task stops breaking unexpectedly.

Presumably, someone will update `GNU.yml` when a new stable version
of the GNU coreutils is released, but I'm not volunteering.
2021-05-17 21:07:05 +02:00
nicoo 9afed1f25f Update Cargo.lock
Adding array-init v2.0.0
Updating cast v0.2.5 -> v0.2.6
  Adding pest v2.1.3
Updating rustc_version v0.2.3 -> v0.3.3
  Adding semver v0.11.0
  Adding semver-parser v0.10.2
Updating serde v1.0.125 -> v1.0.126
Updating serde_derive v1.0.125 -> v1.0.126
  Adding ucd-trie v0.1.3
  Adding uu_factor_benches v0.0.0 (#tests/benches/factor)
2021-05-17 19:45:02 +02:00
nicoo 00322b986b factor: Move benchmarks out-of-crate 2021-05-17 19:43:38 +02:00
nicoo 1cd001f529 factor::benches::table: Match BenchmarkId w/ criterion's conventions
See https://bheisler.github.io/criterion.rs/book/user_guide/comparing_functions.html
2021-05-17 19:43:38 +02:00