diff options
author | Pádraig Brady <P@draigBrady.com> | 2014-03-05 18:41:16 +0000 |
---|---|---|
committer | Pádraig Brady <P@draigBrady.com> | 2014-03-05 19:02:20 +0000 |
commit | 056d6de78fcf11a0f404f25faf8cecc9f9ee9c1c (patch) | |
tree | cd5235d3fd1e8b0142c543541675dd66f26c3d91 /cfg.mk | |
parent | 5dce6bdfafc930dfd17d5d16aea7d1add3472066 (diff) | |
download | coreutils-056d6de78fcf11a0f404f25faf8cecc9f9ee9c1c.tar.xz |
tests: avoid the :> construct which can hide errors
On most shells `:>file || framework_failure_` will not evaluate
the framework_failure_ even if there was an error writing the file.
shells which do evaluate the failure are ksh 93u+ and bash 4.2,
while shells wich don't include bash 4.3, solaris, freebsd, dash.
Furthermore this construct is problematic on Solaris 10 sh,
which will try to optimize away a `:' command in a loop
after the first iteration, even if it is redirected.
* tests/cp/link-deref.sh: Remove the leading colon on redirections.
* tests/cp/reflink-perm.sh: Likewise.
* tests/id/zero.sh: Likewise.
* tests/install/install-C.sh: Likewise.
* tests/misc/env.sh: Likewise.
* tests/misc/md5sum-bsd.sh: Likewise.
* tests/misc/runcon-no-reorder.sh: Likewise.
* tests/mv/partition-perm.sh: Likewise.
* tests/rm/r-root.sh: Likewise.
* tests/split/l-chunk.sh: Likewise.
* tests/split/line-bytes.sh: Likewise.
* tests/tail-2/inotify-rotate.sh: Likewise.
* tests/tail-2/retry.sh: Likewise.
* tests/tail-2/symlink.sh: Likewise.
* tests/tail-2/wait.sh: Likewise.
* tests/touch/read-only.sh: Likewise.
+ cfg.mk (sc_prohibit_colon_redirection): A new syntax check
to avoid further instances of this creeping in.
Diffstat (limited to 'cfg.mk')
-rw-r--r-- | cfg.mk | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -123,6 +123,13 @@ sc_tests_executable: | sed -e "s/^/$(ME): Please make test executable: /" | grep . \ && exit 1; : +# Avoid :>file which doesn't propagate errors +sc_prohibit_colon_redirection: + @cd $(srcdir)/tests && GIT_PAGER= git grep -n ': *>.*||' \ + && { echo '$(ME): '"The leading colon in :> will hide errors" 1>&2; \ + exit 1; } \ + || : + # Create a list of regular expressions matching the names # of files included from system.h. Exclude a couple. .re-list: |