From 056d6de78fcf11a0f404f25faf8cecc9f9ee9c1c Mon Sep 17 00:00:00 2001 From: Pádraig Brady Date: Wed, 5 Mar 2014 18:41:16 +0000 Subject: 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. --- cfg.mk | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'cfg.mk') diff --git a/cfg.mk b/cfg.mk index 7f74afa84..cc6f4b817 100644 --- a/cfg.mk +++ b/cfg.mk @@ -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: -- cgit v1.2.3-54-g00ecf