Commit graph

67 commits

Author SHA1 Message Date
Jan Scheer
5258dec9a8
tail: fix race condition (#3798)
* 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.
2022-08-14 01:01:15 +02:00
Niyaz Nigmatullin
5978185f94 fix spelling 2022-08-09 08:35:10 +03:00
Niyaz Nigmatullin
dbaff49de6 gnu-tests: disable some tests that implementation-specific 2022-08-09 08:35:10 +03:00
Jan Scheer
39505e39ed
build-gnu: attempt to fix #3765 2022-08-05 07:33:36 +02:00
Niyaz Nigmatullin
85021041b4 F-headers: try make 409 seconds timeout 2022-08-02 15:38:25 +03:00
Niyaz Nigmatullin
20a103f9c7 gnu-tests/F-headers: increase number of attempts 2022-08-02 15:38:25 +03:00
Niyaz Nigmatullin
e5fc8bca8d basenc: fix error code on on wrong arguments, fix usage printing test 2022-07-25 23:12:10 +03:00
Niyaz Nigmatullin
f220c86121 util/build-gnu.sh: remove some test changes + change some messages 2022-07-19 17:34:52 +03:00
Jan Scheer
75edeea5e4
tail: reduce CPU load for polling (#3618)
* 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
2022-06-21 22:21:19 +02:00
Terts Diepraam
e3f14ea6e5
Merge pull request #3651 from sylvestre/gnu-install
install: verbose messages shows ginstall as command
2022-06-19 12:08:53 +02:00
Sylvestre Ledru
43ce927bdb install: verbose messages shows ginstall as command 2022-06-18 22:37:09 +02:00
Sylvestre Ledru
aacf4a7dbe
sleep: Remove an incorrect comment 2022-06-18 12:22:39 +02:00
Sylvestre Ledru
0be1b7c76a
Fix typo 2022-06-15 14:33:19 +02:00
Sylvestre Ledru
1747b20cf0 sleep: return 1 is no arg + customize one of the tests (tests/misc/sleep.sh) 2022-06-15 08:57:30 +02:00
Sylvestre Ledru
b9d3841019 build gnu: continue the customization of the tests 2022-06-13 22:43:55 +02:00
Jan Scheer
8ee806a444
Merge branch 'main' into tail_notify 2022-06-02 16:31:25 +02:00
Sylvestre Ledru
06c2aea1b4 ln: Implement -L -P to make tests/ln/hard-to-sym.sh work 2022-06-01 23:03:50 +02:00
Jan Scheer
409878e323
Merge branch 'main' into tail_notify 2022-05-16 22:45:52 +02:00
Jan Scheer
5004d4b458
build-gnu: replace timeout for tests/tail/follow-stdin.sh
* `tests/tail-2/follow-stdin.sh` will hang undefinedly if uu_timeout
is used
2022-05-16 21:09:51 +02:00
Sylvestre Ledru
087d4b14fc Do not use the Rust/touch for tests/ls/abmon-align.sh 2022-05-08 21:27:08 +02:00
Sylvestre Ledru
0314f3ed8e GNU testsuite: no need to rerun the GNU build
At least, two use cases:
* when hacking on test update
* when we want to rebuild only Rust coreutils with the right option

Indeed, the GNU code should not cache often in this case
2022-05-01 19:04:52 +02:00
ndd7xv
88752ecc3e fix -h and --help discrepancies
addresses https://github.com/uutils/coreutils/issues/3370
2022-04-27 23:16:36 -04:00
gmnsii
c2e214bd99
Add dir and vdir utils (based on ls)
Fix issue #3163

They are basically ls with some different options.
2022-04-15 17:30:40 +02:00
Sylvestre Ledru
757b161164 match more the GNU behavior on error code 2022-04-06 13:59:44 +02:00
Sylvestre Ledru
97c6f6ac49 Update of the build-gnu tool to fix usage_vs_getopt.sh 2022-04-06 09:35:12 +02:00
Sylvestre Ledru
b3d87b088d ln: adjust the error messages 2022-04-01 09:25:35 +02:00
Roy Ivy III
baaa1639e1 fix/CICD ~ (GnuTests) disable factor tests 2022-03-31 23:31:48 +02:00
Roy Ivy III
a46521bb8f fix/CICD ~ (GnuTests) polish and revise factor test mutator 2022-03-31 23:31:41 +02:00
Terts Diepraam
65c3ab6afd
Merge pull request #3334 from sylvestre/gnu-selinux
when building for the GNU testsuite, force the build of selinux binaries
2022-03-31 00:11:17 +02:00
Sylvestre Ledru
050b5b0c9b ln: make the tests/ln/hard-backup.sh test work
We haven't a great error message with hard link on the same file

+ Update the GNU error message to match ours
2022-03-30 20:00:11 +02:00
Sylvestre Ledru
12c38f6eb4 when building for the GNU testsuite, force the build of selinux binaries 2022-03-30 09:31:27 +02:00
Sylvestre Ledru
a13f0c8fe0 gnu/usage_vs_getopts.sh: default the usage error value to 2 in the GNU test
Closes issue #3331
2022-03-29 22:33:18 +02:00
Sylvestre Ledru
981a77d0cd gnu/usage_vs_getopts.sh: make the test FAIL instead of ERROR 2022-03-29 22:33:18 +02:00
Jeffrey Finkelstein
5f8567695c util: use uutils timeout in GNU tests
Remove the substitution of uutils `timeout` with GNU `timeout` before
running the GNU test suite. Some of these replacements were not
actually operational because the regex was not appropriate (for
example, the test file had `timeout 10` but the regex would only match
`timeout [0-9]`). Others no longer need to be used because the uutils
version of `timeout` works well enough now to terminate a process
within the given period of time.
2022-03-26 19:35:19 +01:00
jfinkels
ebd0c09549
util: use seq to enumerate integers (#3239)
Replace a bash loop for enumerating integers with a more concise use
of `seq` in `util/build-gnu.sh`.
2022-03-11 09:38:06 +01:00
Jeffrey Finkelstein
a5200efaac util: remove replacement of seq in GNU tests 2022-03-10 18:51:26 -05:00
Jeffrey Finkelstein
31c7f09630 util: remove some workarounds for GNU tests 2022-03-06 22:57:10 -05:00
Roy Ivy III
d6424bb354 maint/util ~ remove extra/redundant factor tests for 'debug' builds
- avoids "Terminated" timeout errors when using longer running 'debug' `factor`
2022-02-17 15:14:52 -06:00
Roy Ivy III
02aa5ea784 maint/util ~ (build-gnu) fix missing 'b3sum' for *sum binary creation 2022-02-12 15:26:59 -06:00
Roy Ivy III
40b9ebf90e docs ~ (util) remove outdated GNULIB comments 2022-02-12 15:26:59 -06:00
Roy Ivy III
c2e17e5f37 maint/util ~ improve/refactor 'build-gnu' & 'run-gnu-test'
- add more logging for better fault tracking
- generalize for use in either RELEASE or DEBUG build mode (default to 'release')
- improve variable naming precision/specificity
2022-02-12 15:26:59 -06:00
Roy Ivy III
f75cfbdebc docs ~ (CICD/util) add/revise spell-checker exceptions 2022-02-12 15:26:59 -06:00
Shreyans Jain
6391f4c28a
util/build-gnu.sh: Add b3sum
Signed-off-by: Shreyans Jain <shreyansthebest2007@gmail.com>
2022-02-11 14:18:56 +05:30
Linux User
d762bebc1c update shell scripts according to shellcheck recommendations and minor cleanup 2022-02-01 06:55:11 +00:00
Jeffrey Finkelstein
ec3bcf4067 util: replace all instances of printf
Add the `g` flag to one of the regular expression substitutions in
`util/build-gnu.sh` so that all instances of `printf` are replaced
with `/usr/bin/printf` in `tests/dd/ascii.sh` instead of just one
instance per line.
2022-01-23 09:52:25 -05:00
Sylvestre Ledru
83201ecb35
Merge pull request #2765 from ybc37/fix/idempotent-build-gnu
Fix idempotence of `utils/build-gnu.sh`
2021-12-15 23:40:55 +01:00
Daniel Schmid
0e4671215d Fix idempotence of utils/build-gnu.sh
* Fix regular expressions to only match when run the first time.
* Enhance the regular expression which removes duplicated "/usr/bin/" to
  allow a space between them (+ also consider `init.cfg`).
2021-12-12 19:20:55 +01:00
Daniel Schmid
e46ace85da Fix typo in utils/build-gnu.sh 2021-12-12 17:24:49 +01:00
Chad Brewbaker
a9bfd5df06
Fix need for ssh keys
Github now mandates git ssh keys instead of username/password. I modified the download instructions to remove the need for ssh authentication.
2021-10-09 23:01:05 -05:00
Sylvestre Ledru
406e60eef2 make build-gnu.sh executable 2021-08-27 09:28:43 +02:00